gpt4 book ai didi

swing - 如何在 JPanel 中监听关闭

转载 作者:行者123 更新时间:2023-12-02 22:16:22 25 4
gpt4 key购买 nike

我正在处理一些奇怪的遗留代码。他们有一个实现 JPanel 的自定义对象。此 JPanel 对象是主应用程序中的辅助弹出屏幕。我遇到的问题是检测辅助弹出屏幕何时关闭。

我试图为该类实现一个 WindowListener,但是当我尝试添加它时,没有与该对象关联的 JFrame。我假设这是因为他们使用的是自定义对象,并且它是一个嵌入式弹出屏幕。

我尝试使用以下方法检索 JFrame:

JFrame parentFrame = (JFrame) SwingUtilities.getWindowAncestor(this);

NullPointerException 而失败。我不知道为什么很难检测到此页面右上角的“x”关闭按钮!我应该提到他们能够将鼠标和按键监听器添加到嵌入在 JPanel 中的表中。但是整个窗口的外部监听器给我带来了麻烦。

(请耐心等待,这是我的第一篇 stackoverflow 帖子,我是 Swing 的新手。)

非常感谢!!

最佳答案

尝试调用getParent()对于那个奇怪的面板。它应该返回父 GUI 组件。如果这仍然不是您的框架,而是一些中间面板,请也对其调用 getParent() 。顶级组件返回 null。

   Component p = strangePanel;
while ( p != null && ! (p instanceof Window))
p = p.getParent();

((Window) p ).addWindowListener(..);

关于swing - 如何在 JPanel 中监听关闭,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14393403/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com