最好的swing在java中的布局解决方案

时间:2012-05-31 15:32:34

标签: java swing layout

我正在尝试重现像osx lion的客户端这样的邮件客户端。 所以我要做的事情是:

osx lion's client mail

我不知道布局的最佳解决方案是什么..有人可以给我一些建议吗?感谢!!!

3 个答案:

答案 0 :(得分:5)

解决方案是使用不同的布局和组件,彼此嵌套,直到构建了您正在寻找的整体布局。通常,您可以为每个嵌套区域使用JPanels,也可以为可调整大小的窗口区域使用JSplitPane。

您可能会发现需要为特定功能编写(或在第三方库库中找到)许多自定义组件

猜测一下,您可以使用BorderLayoutGridBagLayout的组合来完成大部分邮件客户端布局。但您可能还需要考虑MigLayout,这是一个非常灵活的通用布局管理器。

如果你没有这样做,你应该做excellent Java Swing Tutorials

P.S。 WindowBuilder是一个快速原型设计的好工具,但对于像这样的更复杂的GUI设计,我认为你最好用手工编码。

答案 1 :(得分:1)

总体而言,该截图可能是您正在使用的水平框布局(从左到右布置组件以填充空间。)

您可能需要在其中嵌套其他布局,就像使用大多数合理大小的UI一样。

答案 2 :(得分:1)

这是你使用JSplitPane的东西。如果你不希望用户能够在左右之间调整分区的大小,你可以使用BorderLayout,左边的内容就像:

panel = new JPanel( new BorderLayout() );
panel.add( new LeftPanel(), BorderLayout.WEST );
panel.add( new CentralPanel(), BorderLayout.CENTER );

这样,LeftPanel将根据其首选宽度进行调整,并且中心将被赋予剩余的宽度和高度,因此当用户增长并缩小窗口时它将自行调整大小,但是他左侧面板将固定宽度并增长并在高处收缩。

如果你只是想知道通用布局TableLayout是迄今为止最简单和最灵活的。没有多少布局问题无法用它来征服,而且易于理解(与SpringLayout,GroupedLayout等相反),代码少得多,而且比GridBagLayout更强大。

http://java.sun.com/products/jfc/tsc/articles/tablelayout/

但对于你所描述的问题,我认为你不必使用它。