繁体   English   中英

在Java Swing中刷新JPanel

[英]Refresh JPanel in Java Swing

假设我有一个像这样的String列表

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

我必须在JPanel中将带有这些文本的JButtons插入,所以

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

我的问题是...如果我的模型(在这种情况下,我的列表button_names)由于任何原因发生了变化,如何刷新我的JPanel以显示该变化? 我应该做

myJPanel.removeAll()

并再次插入我的JButtons()? 谢谢你

是的,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();
}

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM