将焦点监听器添加到 JFormattedTextField 后,我在删除焦点监听器时遇到问题。我读到removeFocusListener ,但找不到如何使用它的示例。这看起来很简单,但无论我尝试什么,它都行不通。
这是代码的相关部分,我在其中添加监听器,用它执行我需要的操作,以及我想要删除它的位置:
private JFormattedTextField heightArea;
heightArea.addFocusListener(new FocusListener() {
@Override
public void focusGained(FocusEvent e) {
heightArea.setText(getHeight(widthArea));
}
@Override
public void focusLost(FocusEvent e) {
}
});
// From here on I want to remove this listener.
我会尝试这样的事情:
heightArea.removeFocusListener(new FocusListener() );
或
heightArea.removeFocusListener(heightArea.FocusListener() );
但是当然没用。我不太确定应该从 heightArea 传递给 removeFocusListener 来删除该焦点监听器。
抱歉,我的经验不足,希望你能指出我正确的方向,这样我就能明白我做错了什么。
感谢您的帮助,非常感谢。
最佳答案
创建一个类 MyFocusListener 并声明一个相同类型的类级变量。像这样的事情
MyFocusListener myFocusListener = new MyFocusListener();
class MyFocusListener implements FocusListener {
@Override
public void focusGained(FocusEvent e) {
// add your logic here
}
@Override
public void focusLost(FocusEvent e) {
}
}
然后将此监听器添加/删除到您的文本字段
heightArea.addFocusListener(myFocusListener);
heightArea.removeFocusListener(myFocusListener);
关于java - 在我的代码示例中,如何从 JFormattedTextField 中删除焦点监听器?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24440701/