我在一个jTextArea中添加了一个documentListener,只要textArea为空,就应该禁用一个按钮。
这仅适用于textArea为空的起点,但是当我键入内容然后删除所有文本直到textArea.getText() == ""
时,该按钮仍然不会再次禁用。
这就是我写的:
textArea.getDocument().addDocumentListener(new DocumentListener() {
@Override
public void insertUpdate(DocumentEvent e) {
if (textArea.getText() == null) {
disableButton();
} else {
enableButton();
}
}
@Override
public void removeUpdate(DocumentEvent e) {
if (textArea.getText() == null) {
disableButton();
} else {
enableButton();
}
}
@Override
public void changedUpdate(DocumentEvent e) {
if (textArea.getText() == null) {
disableButton();
} else {
enableButton();
}
}
public void enableButton() {
clearModelMenuItem.setEnabled(true);
discardModel.setEnabled(true);
increaseFontSize.setEnabled(true);
decreaseFontSize.setEnabled(true);
incMenuItem.setEnabled(true);
decMenuItem.setEnabled(true);
}
这是什么问题? 谢谢你的帮助!
答案 0 :(得分:3)
这是因为您实际上没有检查文本是否为空;你正在检查它是否是null
。 String
空的String
与null
if ("".equals(textArea.getText())) ...
之间存在差异。
你需要检查
null
如果你想检查它是否为空。
(您可能还想检查JScrollPane
。)