当你关闭其他人时,如何防止主界面关闭?

时间:2013-05-19 09:20:56

标签: java swing jframe

我花了最后一小时在Google上搜索尝试实现某些功能 - 在关闭其他一个主界面后阻止我的主界面关闭。我不确定这是否是提出问题的正确方法,如果有任何问题,请为混淆道歉。

我有一个名为MainUI的接口,它是启动Java程序的主要接口。在这个界面上有两个按钮,可以打开另外两个接口(SinglePlayerStatsUI和MultiplePlayerStatsUI)。如果我点击任一按钮,它会打开相应的界面(应该如此),但是当我关闭打开的界面时,它也会关闭主界面(MainUI) - 这不是我想要的。我想知道什么是一个很好的解决方案来阻止主界面关闭(这也是该程序的主要类)?

为了节省这个问题的一些空间,我在https://github.com/rattfieldnz/Java_Projects/tree/master/PCricketStats的GitHub上创建了我的Java项目(在NetBeans中创建)。 MainUI的类文件称为“MainUI.java”,SinglePlayerStatsUI的类称为“SinglePlayerStatsUI.java”,MultiplePlayerStatsUI的类称为“MultiplePlayerStatsUI.java”。这些课程位于https://github.com/rattfieldnz/Java_Projects/tree/master/PCricketStats/src/pcricketstats

我也有每个界面的截图 - 可以在http://imgur.com/a/gGUID#0看到。

如果我的问题需要进一步澄清,请告诉我。

2 个答案:

答案 0 :(得分:4)

更改SinglePlayerStatsUI.java的第100行和MultiplePlayerStatsUI.java

的第88行
setDefaultCloseOperation(javax.swing.WindowConstants.EXIT_ON_CLOSE);

setDefaultCloseOperation(javax.swing.WindowConstants.DISPOSE_ON_CLOSE);

或更改SinglePlayerStatsUI.formMultiplePlayerStatsUI.form

的第5行
<Property name="defaultCloseOperation" type="int" value="3"/>

<Property name="defaultCloseOperation" type="int" value="2"/>

答案 1 :(得分:2)

这不是一个真正的答案,但由于我找到了一个更好的解决方案,我想我会关闭这个问题......

我查看了JTabbedPanes,它看起来比打开多个JFrame更加友好。 AndrewThompson给出了一些非常有用的建议,并将我转到了链接“The Use of Multiple JFrames, Good/Bad Practice?” - 这让我有了切换到JTabbedPanes的原因。

感谢收到的反馈意见,我希望其他人也可以从中学到:)。