Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/cassandra/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Swing java,使用菜单时关闭特定窗口_Java_Swing - Fatal编程技术网

Swing java,使用菜单时关闭特定窗口

Swing java,使用菜单时关闭特定窗口,java,swing,Java,Swing,我有一个类,它创建了一个包含所有菜单项等的菜单,然后我有许多UI,它们有一个JMenu,我在其中给出了第一个类的JMenu。我的问题是,菜单中有许多项可以打开其他UI,如何进行检查以打开其中一个,关闭当前窗口 我所做的一个非常简短的版本是: 菜单: 用户界面: 请注意,这只是为了了解其想法,代码要复杂得多,但无法显示。我这样做的原因是我有一个巨大的菜单,它会向所有UI添加大量可重复的代码。假设每个窗口都有自己的菜单栏,那么您可以使用中的ExitAction类。使用camickr提供的代码,我对这

我有一个类,它创建了一个包含所有菜单项等的菜单,然后我有许多UI,它们有一个JMenu,我在其中给出了第一个类的JMenu。我的问题是,菜单中有许多项可以打开其他UI,如何进行检查以打开其中一个,关闭当前窗口

我所做的一个非常简短的版本是:

菜单:

用户界面:


请注意,这只是为了了解其想法,代码要复杂得多,但无法显示。我这样做的原因是我有一个巨大的菜单,它会向所有UI添加大量可重复的代码。

假设每个窗口都有自己的菜单栏,那么您可以使用中的
ExitAction
类。

使用camickr提供的代码,我对这个问题做了一个完美的修复,只需在另一帧加载时关闭第一帧的可见性,这样系统就不会关闭,因为ExitAction代码在其他任何东西出现之前就关闭了。代码如下:

for (Window frame : Window.getWindows())
        {
            if (frame.isActive())
            {
                frame.setVisible(false);
            }
        }

希望它能帮助人们

谢谢你的帮助,我修改了代码,使之适用于任何有我问题的人。应该没有必要更改退出。如果希望在单击“X”按钮时帧不可见,则应使用
frame.setdeafultcloseoperation(JFrame.HIDE_ON_CLOSE)当您创建JFrame.well时,我发现这种方法也很有效,所以我希望如果其他人发现了这种方法,他们会看到代码和您放置的链接,并发现它们很有用,再次感谢。
public UI()
{
 JMenuBar menu = Menu.makeMenu();
 }
for (Window frame : Window.getWindows())
        {
            if (frame.isActive())
            {
                frame.setVisible(false);
            }
        }