通过setVisible隐藏/显示的JFrame的窗口事件?

sch*_*los 16 java events swing

我需要添加哪种监听器JFrame来检测它何时被隐藏或显示setVisible

我尝试使用一个WindowListenerwindowOpenedwindowClosed方法,但它们仅用于工作第一次被打开的窗口(windowOpened()或分别在关闭窗口使用dispose方法windowClosed).这对我来说还不够.我希望每次窗口在屏幕上可见和不可见时都会收到通知setVisible.

是否有标准的Swing方法来实现这一点,或者我是否需要自己创建(通过,比方说,覆盖setVisible方法)?

Jam*_*mes 29

试试吧java.awt.event.ComponentListener.您可以使用此代码添加一个(其中window是其名称JFrame):

window.addComponentListener(new ComponentAdapter() {
   public void componentHidden(ComponentEvent e) {
      /* code run when component hidden*/
   }
   public void componentShown(ComponentEvent e) {
      /* code run when component shown */
   }
});
Run Code Online (Sandbox Code Playgroud)