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

问题描述 投票:8回答:3

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

我使用JFrame对象如下:

JFrame frame = new JFrame("Frame");

java swing jframe awt windowlistener
3个回答
12
投票

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


6
投票
  1. 创建一个框架并添加一个监听器:

JFrame frame = new JFrame();
frame.addWindowStateListener(new WindowStateListener() {
   public void windowStateChanged(WindowEvent arg0) {
      frame__windowStateChanged(arg0);
   }
});
  1. 实现监听器:

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

4
投票

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

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

© www.soinside.com 2019 - 2024. All rights reserved.