我花了最后一小时在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看到。
如果我的问题需要进一步澄清,请告诉我。
答案 0 :(得分:4)
更改SinglePlayerStatsUI.java
的第100行和MultiplePlayerStatsUI.java
setDefaultCloseOperation(javax.swing.WindowConstants.EXIT_ON_CLOSE);
要
setDefaultCloseOperation(javax.swing.WindowConstants.DISPOSE_ON_CLOSE);
或更改SinglePlayerStatsUI.form
和MultiplePlayerStatsUI.form
<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的原因。
感谢收到的反馈意见,我希望其他人也可以从中学到:)。