我想在文本框內按下某些內容時停用組件,並在您擦除所有內容並將其變爲空時重新激活組件。但是,這似乎並沒有工作:KeyListener如何重新激活組件?
idTF.addKeyListener(new KeyAdapter() {
public void keyTyped(KeyEvent e) {
char ch = e.getKeyChar();
if (Character.charCount(ch)>0) {
searchF.setEditable(false);
rangeTF1.setEditable(false);
rangeTF2.setEditable(false);
ageTF.setEditable(false);
addressTF.setEditable(false);
crimebox.setEditable(false);
countrybox.setEditable(false);
genderbox.setEditable(false);
} else if (Character.charCount(ch)==0) {
searchF.setEditable(true);
rangeTF1.setEditable(true);
rangeTF2.setEditable(true);
ageTF.setEditable(true);
addressTF.setEditable(true);
crimebox.setEditable(true);
countrybox.setEditable(true);
genderbox.setEditable(true);
}
}
});
附註:您應該將所有的隱藏/顯示邏輯放入一個void函數中,並將一個布爾值'hide/show'傳遞給所述函數。 –
'Character.charCount(...)'不能等於'0'。它告訴你需要多少'char'來表示一個給定的Unicode代碼點 - 在你的情況下,實際上被按下的那個鍵* - 對於任何實際的字符顯然永遠不會小於'1'。你永遠不會檢查'idTF'的內容。 – millimoose