2010-03-26 66 views

回答

2

請參閱http://java.sun.com/docs/books/tutorial/uiswing/layout/none.html在Swing中進行絕對定位:)但是,大多數情況下,您會避免這種情況並使用合適的佈局管理器。爲此,我建議您使用MigLayout這是一個非常強大的佈局管理器(易於直接在代碼中指定佈局),或者使用UI設計器Mattise,它使用GridBagLayout並自動將.java文件寫入您的插入點自己的代碼,用於響應UI事件等。

alt text http://i.d.com.com/i/dl/media/dlimage/10/58/06/105806_large.jpeg

MigLayout例如:

JPanel p = new JPanel(new MigLayout("", "[right]")); 

p.add(new JLabel("General"), "split, span, gaptop 10"); 
p.add(new JSeparator(),  "growx, wrap, gaptop 10"); 

p.add(new JLabel("Company"), "gap 10"); 
p.add(new JTextField(""),  "span, growx"); 
p.add(new JLabel("Contact"), "gap 10"); 
p.add(new JTextField(""),  "span, growx, wrap"); 

p.add(new JLabel("Propeller"),"split, span, gaptop 10"); 
p.add(new JSeparator(),  "growx, wrap, gaptop 10"); 

p.add(new JLabel("PTI/kW"), "gap 10"); 
p.add(new JTextField(10),  ""); 
p.add(new JLabel("Power/kW"), "gap 10"); 
p.add(new JTextField(10),  "wrap"); 
p.add(new JLabel("R/mm"),  "gap 10"); 
p.add(new JTextField(10),  "wrap"); 
p.add(new JLabel("D/mm"),  "gap 10"); 
p.add(new JTextField(10)); 
0

推薦的方法是使用佈局管理器將組件定位到容器中。優點是佈局管理器將提供調整大小或重新定位彼此相鄰的組件的功能,因爲容器調整大小。

自己編寫所有這些行爲是沒有必要的。

0

肯定要用到佈局管理器,從此以後你有足夠的靈活性來處理的事情等,這取決於平臺不同的佈局(影響按鈕的大小)和字體尺寸。如果您想要構建可訪問的應用程序,後者非常重要,因爲某些用戶在查看小文本時遇到問題,因此將全局乘數應用於字體大小。另外一個好處是你可以輕鬆應對整個窗口的大小調整。

但是請避免GridBagLayout。它功能強大,但需要大量的工作才能使其不至於勉強,以至於從零開始編寫自己的專家版面更容易...

相關問題