Java 为什么只有windowGainedFocus()不起作用?
我有以下代码,其中我向JFrame添加了一个WindowListener,我想覆盖方法Java 为什么只有windowGainedFocus()不起作用?,java,swing,focus,windowlistener,Java,Swing,Focus,Windowlistener,我有以下代码,其中我向JFrame添加了一个WindowListener,我想覆盖方法windowGainedFocus: final JFrame jd = new JFrame(); jd.setLocationRelativeTo(null); jd.setSize(300, 425); jd.setLayout(null); jd.setResizable(false); jd.addWindowListener(new WindowAd
windowGainedFocus
:
final JFrame jd = new JFrame();
jd.setLocationRelativeTo(null);
jd.setSize(300, 425);
jd.setLayout(null);
jd.setResizable(false);
jd.addWindowListener(new WindowAdapter() {
public void windowGainedFocus(WindowEvent windowEvent){
System.out.println("TEST");
}
});
但它不工作,当我聚焦这个框架时,它不会打印“测试”。
但是,当我重写方法windowClosing
时,它会起作用:
jd.addWindowListener(new WindowAdapter() {
public void windowClosing(WindowEvent windowEvent){
System.out.println("TEST");
}
});
windowGainedFocus()
有什么问题
应该是:
jd.addWindowFocusListener(new WindowAdapter() {
public void windowGainedFocus(WindowEvent windowEvent){
System.out.println("TEST");
}
});
我知道我讨厌适配器类有一个很好的理由。。我建议使用侦听器而不是适配器。更改
公共无效windowGainedFocus(..
为@覆盖公共无效windowGainedFocus(..
它仍然不起作用:/windowClosing方法在没有覆盖的情况下工作了哦,它现在起作用了,但我不知道为什么……我只是将addWindowListener
更改为addWindowFocusListener
。
jd.addWindowFocusListener(new WindowAdapter() {
public void windowGainedFocus(WindowEvent windowEvent){
System.out.println("TEST");
}
});