簡體   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