2015-07-10 2 views
1

Давайте предположим, что У меня есть список строки, как этотОбновить JPanel в Java Swing

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

Я вставить JButtons с этими текстами в JPanel так что я

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

Мой вопрос is ... Если моя модель (в этом случае, мои списки button_names) изменяется по каким-либо причинам, как я могу обновить свой JPanel, чтобы показать это изменение? Должен ли я сделать

myJPanel.removeAll() 

и вставить снова мои JButtons()? Спасибо в приветствии

+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(); 
} 
Смежные вопросы