2015-05-08 50 views
1
setLayout(new BorderLayout()); 
    add(listScroller, BorderLayout.WEST); 

當我只是這樣做我的名單被留下並填寫所有列大小。但是,當我添加更多的東西。JList左附和填充

setLayout(new GridBagLayout()); 
    GridBagConstraints gc = new GridBagConstraints(); 

    gc.gridx = 2; 
    gc.gridy = 0; 
    add(nameLabel, gc); 

它正在變小,當我調整大小時,它將變得不可見。我怎樣才能適應左邊的列表,其他的東西在右邊。

額外的問題:如果列表中的元素很少,我的滾動器不顯示。無論發生什麼,我都想看看滾輪。

回答

2

首先,你可能想使用一個單一的佈局管理器...

setLayout(new GridBagLayout()); 
GridBagConstraints gc = new GridBagConstraints(); 

gc.gridx = 0; 
gc.gridy = 0; 
gc.weighty = 1; 
gc.fill = GridBagConstraints.BOTH; 
gc.gridheight = GridBagConstraints.REMAINDER; 
add(listScroller, gc); 

gc.gridx = 2; 
gc.gridy = 0; 
gc.weighty = 0; 
gc.fill = GridBagConstraints.NONE; 
gc.gridheight = 1; 
add(nameLabel, gc); 

或者

setLayout(new BorderLayout()); 
add(listScroller, BorderLayout.WEST); 
add(nameLabel); 

取決於你想要達到

更多見Laying Out Components Within a Container什麼詳情

額外的問題:如果列表中的元素很少,我的滾動器不顯示。無論發生什麼,我都想看看滾輪。

你會想看看JScrollPane#setVerticalScrollBarPolicyJScrollPane#setHorizontalScrollBarPolicy