我想在文本字段内按下某些内容时停用组件,并在删除其中的所有内容并使其变为空时重新激活它们。但这似乎不起作用:
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);
}
}
});
最佳答案
您可以拥有DocumentListener
:
DocumentListener documentListener = new DocumentListener() {
@Override
public void changedUpdate(DocumentEvent arg0) {
enableOrDisable(arg0);
}
@Override
public void insertUpdate(DocumentEvent arg0) {
enableOrDisable(arg0);
}
@Override
public void removeUpdate(DocumentEvent arg0) {
enableOrDisable(arg0);
}
private void enableOrDisable(arg0);(DocumentEvent arg0) {
//Code to enable/disable button
}
};
并将此监听器添加到您想要的字段:
myComponent.getDocument().addDocumentListener(documentListener);
关于java - KeyListener如何重新激活组件?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19655303/