如何自动调整java swing元素的大小



我正在尝试自动调整应用程序左侧的大小。左边有一个JTextField和一个JTree,右边有3个JButton。但我只是不知道如何使左侧自动调整大小。

我用Netbeans GUI Creator(或者它的名字)做了这件事,但如果没有Netbeans,我不知道该怎么做。(我通常不使用Netbeans进行编程,这只是一个例外,看看是否可以使用Swing进行编程

以下是Netbeans创建的代码:http://pastebin.com/ERwY4rBC这并不是说代码完全不可用,而是我想手动尝试一下。

GroupLayout看起来不错,但Oracle网站表示,它主要用于GUI工具。所以,使用GroupLayout不是"Java式"的,或者我必须如何理解它?或者,在没有GroupLayout的情况下,还有更好的方法来实现这一点吗?

谢谢!

所以,使用GroupLayout不是"Java式"的,或者我必须如何理解它

简单地说,GroupLayout真的很难处理代码,并且主要导致大量代码。但它并不是"不像Java",只是你不想手工完成,而且之后的代码很难阅读,因为它相当冗长。

使用一些"嵌套布局"可以很容易地实现您想要实现的目标(根据屏幕截图)。如果主面板使用BorderLayout,将左侧可调整大小的面板放在BorderLayout.CENTER中,将另一个不可调整大小面板放在BorderLayout.EAST中,则将获得所需的调整大小行为。

然后,您只需要决定将哪个LayoutManager用于这些单独的面板。我认为BoxLayoutFlowLayout都会做得很好。

帮自己一个忙,使用MigLayout满足您的所有布局需求。手工编写UI代码特别方便。

他们的网站上有一个WebStart应用程序,通过提供的代码示例演示不同的布局情况。

最新更新