2013-05-19 150 views
0

我花了最后一小时在Google上搜索,尝试实现某些内容 - 阻止其他人关闭后关闭我的主界面。我不确定这是否是正确的方式来提出我的问题,所以如果有任何疑问,请谅解。当您关闭其他人时,您如何防止主界面关闭?

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

为了节省这个问题的一些空间,我在GitHub上(在NetBeans中创建)在https://github.com/rattfieldnz/Java_Projects/tree/master/PCricketStats上有我的Java项目。 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看到。

如果我的问题需要更多的澄清,请让我知道。的SinglePlayerStatsUI.java

+1

如果您提供[SSCCE](http://sscce.org/),您可以更快得到更好的帮助。 – Howard

+0

请参阅[使用多个JFrames,好/坏实践?](http://stackoverflow.com/a/9554657/418556)并且不要包含sigs。在问题中,它们是噪音。 –

+1

@AndrewThompson这是一些很好的建议,不知道为什么我以前没有教过这个...需要稍微改变我的项目,以使其更友好:)。 – Rob

回答

4

变化线100和MultiplePlayerStatsUI.java

setDefaultCloseOperation(javax.swing.WindowConstants.EXIT_ON_CLOSE); 

线88要

setDefaultCloseOperation(javax.swing.WindowConstants.DISPOSE_ON_CLOSE); 

SinglePlayerStatsUI.form变化线5和MultiplePlayerStatsUI.form

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

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

上面的例子有道理,但我无法让它在我的程序中工作...我正在考虑@AndrewThompson在他的一个关于多个JFrames的评论中给出的建议 - 所以如果我沿着AndrewThompson的路线走下去(但仍然非常好的建议),这个例子对我来说可能是多余的。 – Rob

2

这是不是一个真正的答案,但因为我已经找到了更好的解决方案,以我想要的东西,我想我会关闭这个问题,关...

我看看到JTabbedPanes它看起来比打开多个JFrames更友好。 AndrewThompson提供了一些非常有用的建议,并将我引向链接“The Use of Multiple JFrames, Good/Bad Practice?” - 这给了我切换到JTabbedPanes的理由。

感谢您收到的反馈意见,我希望别人也从中学习:)。

+0

*“这不是一个真正的答案,”*看起来像是对我的回答。 :) –