假设我有一个像这样的字符串列表
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]));
我的问题是......如果我的模型(在这种情况下,我的List button_names)因任何原因发生了变化,我如何刷新我的JPanel以显示更改? 我应该
myJPanel.removeAll()
再次插入我的JButtons()?谢谢你
答案 0 :(得分: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();
}