如何在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);
的這些工作都沒有嘗試過。任何幫助表示讚賞!謝謝。
如何在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);
的這些工作都沒有嘗試過。任何幫助表示讚賞!謝謝。
在Java中,佈局管理器使用其確定的組件將被放置的方式。您可以找到有關佈局管理器這裏的更多信息:http://java.sun.com/docs/books/tutorial/uiswing/layout/using.html
如果一定要使用的座標把你的組件,你可以嘗試:
JFrame frame = new JFrame();
frame.setLayout(null);
否則,對於Java的一個非常不錯的圖形用戶界面編輯器是NetBeans的哪個默認情況下使用GroupLayout。
將佈局管理器設置爲空是在佈置組件時使用絕對定位的首選方式。然而IMO,NetBeans的GUI編輯器是一個真正的痛苦,我發現它不容易使用它。 – ChadNC 2010-01-11 18:05:59
NetBeans UI編輯器非常出色,現在是免費提供的最佳選擇之一。瞭解不同LayoutManagers的工作方式可能很困難,但最終它將非常值得。 – willcodejavaforfood 2010-01-12 08:21:15
Layout Managers將爲您做到這一點。
使用默認佈局BorderLayout
,嘗試
setLayout(new BorderLayout());
getContentPane().add(yourLabel, BorderLayout.NORTH);
getContentPane().add(yourList, BorderLayout.CENTER);
你能提供你創建'JFrame','JLabel'和'JList'的代碼嗎? – 2010-01-11 17:23:27