对于以下代码,我得到了IllegalStateException(试图在通知中进行更改):
private class DocumentHandler implements DocumentListener {
public void changedUpdate(DocumentEvent ev) {
// unused
}
public void insertUpdate(DocumentEvent ev) {
if(textInput.getText().equals("...")) {
JOptionPane.showMessageDialog(null, "...");
textInput.setText("");
}
}
为什么在DocumentListener处于活动状态时不能更改TextField?
我试图在TextField设置为“”时删除DocumentListener,但这根本没有帮助。我知道以前有人问过一个非常类似的问题,但我没有得到答案...
谢谢
通常,您不会-在聆听文档时不会更改其状态。我知道的两种可能的解决方案:
SwingUtilities.invokeLater(yourRunnable)
将Runnable排队到Swing事件线程中。这是一个无耻的恶棍