繁体   English   中英

Java中的Best Swing布局解决方案

[英]Best swing's layout solution in java

我正在尝试重现像osx lion的客户端这样的邮件客户端。 所以我必须要做一些类似的事情:

osx lion的客户邮件

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

解决方案是使用彼此嵌套的许多不同布局和组件 ,直到建立了所需的总体布局。 通常,您将对每个嵌套区域使用JPanels,对于可调整大小的窗口区域可能使用JSplitPane。

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

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

如果您还没有做那么好的事情,那么您应该做出色的Java Swing教程

PS WindowBuilder是用于快速制作原型的好工具,但是对于像这样的更复杂的GUI设计,我认为您最终会更好地手工编码它们。

总体而言,该屏幕快照可能是您想要的(将组件从左到右布置以填充空间)。

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

这是您要使用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/

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM