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

标签 java swing events

我必须将哪种监听器添加到 JFrame 以检测它何时通过 setVisible 隐藏或显示?

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

是否有标准的 Swing 方法来实现此目的,还是我需要自己制作(例如,覆盖 setVisible 方法)?

最佳答案

试试 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 */
   }
});

关于java - 通过 setVisible 隐藏/显示的 JFrame 的窗口事件?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/622814/

相关文章:

java - 为什么 Java ImageIO 会展平 JPEG 颜色

java - Android LibGDX 粒子系统固定在屏幕上

python - wxPython,拖动时触发事件

angular - Ionic 3 ion-datetime 组件和 "ion-date-selected"事件

python - Pygame - 如何从下到上逐渐填充对象?

java - 从我的应用程序关闭应用程序

java - Java中的深度递归导致堆栈溢出?

Java jpanel 的工作原理类似于 Windows 拖放图标重新排列

java - 如何在Swing中同步请求焦点?

java - WindowsLookAndFeel 上的 JProgressBar 仅以 5% 的增量更新