Java 为什么只有windowGainedFocus()不起作用?

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

我有以下代码,其中我向JFrame添加了一个WindowListener,我想覆盖方法
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");
     }        
});