2013-12-09 31 views
0

我们正在为学校制作一款小游戏,但是我的小组遇到了一些麻烦。我们使用Null布局管理器构建我们的应用程序,并将每个元素放在绝对位置上。现在我们遇到了一些我们自己无法解决的问题。Java null布局&重新验证

只要我们启动应用程序,它看起来很好,但也可以调用最小化应用程序并恢复它的所有元素 - 看起来像 - 它们的位置被删除。当我们调用removeAll()和Revalidate()时,也会发生这种情况。

我画了一些截图来阐明我在说什么。有没有人可以帮助我们呢?

应用程序在启动时工作正常:http://s8.postimg.org/erobuux51/app_startup.jpg

应用未能通过最小化:http://s30.postimg.org/nc4tosaup/app_failed.jpg

+3

根本不使用空布局。使用合适的布局管理器。从[here]开始(http://docs.oracle.com/javase/tutorial/uiswing/layout/index.html) – Sage

+1

使用revalidate()将无济于事。 revalidate()方法调用布局管理器来设置所有组件的大小/位置。 – camickr

回答

2

无需任何代码,所有我能做的就是指向你Oracle的摇摆A Visual Guide to Layout Managers

也许Oracle可以帮助你。花大量的时间(几个月)学习本教程。

根据您的评论。你应该从来没有在JPanel上用Swing元素做一个removeAll。你应该几乎从来没有使用JPanels在JPanel上执行removeAll。这里是Oracle的Creating a GUI With JFC/Swing

也许Oracle可以帮助你。

最后,我写了一篇文章,向您展示如何将所有Oracle解释在一起。 Hangman Swing GUI

+0

那么没有太多有趣的代码可以显示我的猜测。它只是我们将JLabels和JButton添加到JPanel(即JFrame上),并且只要我们在该JPanel上调用RemoveAll和Revalidate,或者最小化我们的应用程序,位置就会消失 – Thijs

+1

@Thijs,请从学习布局管理器开始。当你和他们做一件或多件事时,你会爱上它们的。认真地 – Sage

-1

null布局可能被大多数Java Swing开发人员所憎恨,但它不应该是程序失败的原因。只需使用空布局+框架的最小化不应导致组件重新定位。我想你一定会犯一些其他的错误,导致这个问题。