2010-01-11 71 views
1

如何在JFrame上指定組件(特定於JLabel)的位置?我創建了一個JFrame對象,並在框架中添加了一個JLabel和一個JList,但是兩個對象都被放置在彼此之上。我一直在使用jframe組件佈局

label.setBounds(10,10,10,10);
list.setBounds(20,20,100,100);

label.setLocation(10,10);
list.setLocation(10, 50);

的這些工作都沒有嘗試過。任何幫助表示讚賞!謝謝。

+0

你能提供你創建'JFrame','JLabel'和'JList'的代碼嗎? – 2010-01-11 17:23:27

回答

2

在Java中,佈局管理器使用其確定的組件將被放置的方式。您可以找到有關佈局管理器這裏的更多信息:http://java.sun.com/docs/books/tutorial/uiswing/layout/using.html

如果一定要使用的座標把你的組件,你可以嘗試:

JFrame frame = new JFrame(); 
frame.setLayout(null); 

否則,對於Java的一個非常不錯的圖形用戶界面編輯器是NetBeans的哪個默認情況下使用GroupLayout。

+0

將佈局管理器設置爲空是在佈置組件時使用絕對定位的首選方式。然而IMO,NetBeans的GUI編輯器是一個真正的痛苦,我發現它不容易使用它。 – ChadNC 2010-01-11 18:05:59

+0

NetBeans UI編輯器非常出色,現在是免費提供的最佳選擇之一。瞭解不同LayoutManagers的工作方式可能很困難,但最終它將非常值得。 – willcodejavaforfood 2010-01-12 08:21:15

1

Layout Managers將爲您做到這一點。

使用默認佈局BorderLayout,嘗試

setLayout(new BorderLayout()); 
getContentPane().add(yourLabel, BorderLayout.NORTH); 
getContentPane().add(yourList, BorderLayout.CENTER);