2011-09-01 31 views
1

這裏是我寫的代碼:JLabel setLocation不工作?

super("Add contact"); 

setLayout(new FlowLayout()); 
IPAddress = new JLabel("IP Address"); 
IPAddress.setLocation(1000, 100); 

ImageIcon ii=new ImageIcon(getClass().getResource("Add.png")); 
JLabel image = new JLabel(ii); 
image.setSize(100, 100); 
image.setLocation(500, 100); 
add(image); 
add(IPAddress); 
setSize(500,150); 
} 

回答

7

這是正確的。佈局管理器負責根據佈局管理器的規則設置組件的位置。所以在你的情況下,FlowLayout將覆蓋組件的位置。

您不應該硬編碼組件的位置。如果有人使用的分辨率低於1024 X 768,該怎麼辦?該組件將永遠不會顯示。

您也不應該設置組件的大小。每個組件都有一個首選大小。在帶有圖像的標籤的情況下,首選大小將是圖像的大小。

請閱讀Layout Managers,並使用適當的佈局管理器或佈局管理器組合來實現所需的佈局。