2015-07-10 82 views
1

讓我們假設我有一組字符串這樣刷新的JPanel中的Java Swing

List<String> button_names={"Button1","Button2","Button3","Button4"}; 

我已經用在一個JPanel這些文本插入Jbutton將讓我做

for (int i=0; i<button_names.length; i++) 
    myJPanel.add(new JButton(button_name[i])); 

我的問題是...如果我的模型(在這種情況下,我的列表button_names)因任何原因而更改,我如何刷新我的JPanel以顯示更改? 我應該做的

myJPanel.removeAll() 

並再次插入我的Jbutton將()?謝謝你的態度

+0

'重新驗證(使用和)' – dly

回答

0

是的removeAll然後重新插入新的按鈕是最簡單的,通常是最好的方式。否則,您必須開始計算哪些按鈕已被刪除,哪些已添加,以及列表中這些新按鈕的位置。此外,列表中的按鈕應該改變我猜的位置,因此您必須覆蓋該情況。

您可以添加按鈕後寫一個方法是這樣,你可以在創建初期,當你要重新加載列表

void addButtonsToPanel(JPanel p) { 
    p.removeAll(); 
    for (int i=0; i<button_names.length; i++) 
    myJPanel.add(new JButton(button_name[i])); 
    validate(); 
    repaint(); 
}