2011-12-14 37 views
3

是否所有組件的每個系統的LookAndFeel的大小相同?爪哇 - 系統的LookAndFeel

UIManager.getSystemLookAndFeelClassName(); 

如果不是,有什麼佈局是最好的處理有分量的每個系統上是不同的大小?

謝謝。

+2

推薦閱讀:http://docs.oracle.com/javase/tutorial/uiswing/layout/using.html – OscarRyz 2011-12-14 03:15:39

回答

7

你問:

是否所有組件的每個系統的LookAndFeel的大小相同?

不,他們是不一樣的大小。

如果不是,哪種佈局類型最適合用來處理每個系統上的組件大小不同?

沒有一個最適合所有人的佈局,所以這個問題很難用幾句話來回答。您最好的嵌套容器,每個都使用自己的佈局,並確保佈局在調整大小時運行良好。您最好讓組件在顯示之前選擇自己喜歡的尺寸並打包您的GUI。

我發現混合基本佈局和簡單佈局最適合我,包括使用BorderLayout,BoxLayout,GridLayout,FlowLayout和偶爾GridBagLayout。我發現NetBean的默認GroupLayout對於這類問題是最不靈活的。

+0

我從來沒有使用過容器。你有沒有解釋得很好的鏈接? – Stripies 2011-12-14 03:23:47

+3

@JonMannerberg:實際上,你有。從容器***下降的任何東西都是***容器。這包括JComponent及其所有後代,其中許多我相信您已經使用過很多,例如JPanels,JButtons,JLabels等......它還包括頂級窗口,如JFrames,JApplets,JDialogs等。 – 2011-12-14 03:34:30

3

如果不是,哪種佈局類型最適合處理每個系統上的組件大小不同?

總的來說,我認爲你在這裏擔心的是「最佳單選」。在這種情況下,我會建議金屬外觀和感覺---在一般情況下,操作系統的具體長相不同的系統古怪......如果你是推盪到極限,複雜的表格等,你會發現,定期的,老派的,applet風格的外觀和感覺是最好的選擇。

現在,關於佈局:

流動和網格佈局是一些最穩健的......我不記得這些任何驚喜,但是......他們是無聊。

然後,BoxLayout與標籤式窗格結合使用時,可以爲您提供非常健壯的跨平臺可擴展gui(JScrollPanes對此非常讚賞)。

的GridBagLayout中也健壯如果你瞭解它是如何工作

最後,還有一些較新的開源,非孫佈局管理器,像GridLayout2,有的在NetBeans moeiteys的。這些都是在beggining極其方便,但如果你是在部署了大量的平臺,我會小心些。

我發現,標準的揮杆佈局善於與不同的默認組件大小處理,只要包(),並重新驗證()方法適當地在必要時使用。如果您的GUI特別動態,那麼revalidate()方法非常重要。