gpt4 book ai didi

java - 如何关闭 Activity 的 JFrame

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

我正在尝试找到一种可以关闭 Activity JFrame 的方法。

我无法使用frame.dispose();,因为我在工具栏类中声明操作监听器,并且我想要关闭的框架不是静态的并且是在运行时声明的。

我尝试过使用:

java.awt.Window win[] = java.awt.Window.getWindows(); 
for(int i=0;i<win.length;i++){
win[i].dispose();
}

虽然这确实有效,但在某些情况下,即使只有 1 个窗口似乎打开,它也会关闭多个窗口,因此框架会根据用户所做的操作多次闪烁打开和关闭。

对我来说,要完全重现我的问题,需要发布大量不符合 MCVE 原则的代码。

我希望有人知道一种更简单、更可靠的方法,以 acitveframe.dispose() 的方式关闭 Activity 框架; - 我现在这不是一个真正的解决方案!!

最佳答案

如果您尝试获取操作事件源的 Window 祖先,会发生什么情况?即,

@Override
public void actionPerformed(ActionEvent actionEvent) {
Component comp = (Component) actionEvent.getSource();
Window win = SwingUtilities.getWindowAncestor(comp);
win.dispose();
}

如果源不是组件或者它不包含在感兴趣的顶级窗口中,则此方法将不起作用。

<小时/>

关于:

For me to fully recreate my problem would involve posting a significant amount of code which would not be in line with MCVE principles.

我敢打赌,只要付出一点努力,您就可以创建并发布一些接近的东西。

关于java - 如何关闭 Activity 的 JFrame,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26674187/

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