如何检测JFrame窗口最小化和最大化事件?

时间:2012-06-22 01:03:10

标签: java swing jframe awt windowlistener

有没有办法让JFrame对象的事件监听器检测用户何时单击窗口最大化或最小化按钮?

使用JFrame对象如下:

JFrame frame = new JFrame("Frame");

3 个答案:

答案 0 :(得分:12)

您可以使用WindowStateListenerHow to Write Window Listeners教程演示了如何创建与窗口相关的事件处理程序。

答案 1 :(得分:5)

  1. 创建一个框架并添加一个监听器:
  2. 
    
    JFrame frame = new JFrame();
    frame.addWindowStateListener(new WindowStateListener() {
       public void windowStateChanged(WindowEvent arg0) {
          frame__windowStateChanged(arg0);
       }
    });
    
    
    

    1. 实施监听器:
    2. 
      
      public void frame__windowStateChanged(WindowEvent e){
         // minimized
         if ((e.getNewState() & Frame.ICONIFIED) == Frame.ICONIFIED){
            _print("minimized");
         }
         // maximized
         else if ((e.getNewState() & Frame.MAXIMIZED_BOTH) == Frame.MAXIMIZED_BOTH){
            _print("maximized");
         }
      }
      
      
      

答案 2 :(得分:4)

是的,您可以通过WindowListener实施windowIconified(WindowEvent e)方法windowDeiconified(WindowEvent e)来实现这一目标。

有关详细信息,请访问this