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

8

有没有一种方法可以向JFrame对象添加事件侦听器,以便检测用户单击窗口最大化或最小化按钮?

我正在使用以下方式使用JFrame对象:

JFrame frame = new JFrame(“ Frame”);


是的,我需要知道窗口何时被调整大小,以便重新绘制框架内部的组件。 - Markel Mairs
2
当框架调整大小时,方法validate()repaint()将自动调用,但您可能需要更新其他数据结构;另请参见AnimationTest - trashgod
3个回答

14

7
  1. 创建一个框架并添加监听器:

JFrame frame = new JFrame();
frame.addWindowStateListener(new WindowStateListener() {
   public void windowStateChanged(WindowEvent arg0) {
      frame__windowStateChanged(arg0);
   }
});

实现监听器:

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");
   }
}


最大化是指从最小化返回(显示)吗? - gumuruh

7

是的,您可以通过实现WindowListener方法,即windowIconified(WindowEvent e)windowDeiconified(WindowEvent e)来实现此操作。

有关更多详细信息,请访问此处


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接