【问题标题】:Refresh JPanel in Java Swing在 Java Swing 中刷新 JPanel
【发布时间】:2015-09-29 02:13:28
【问题描述】:

假设我有一个这样的字符串列表

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()?非常感谢您

【问题讨论】:

  • revalidate() 添加按钮后

标签: java swing jpanel refresh


【解决方案1】:

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2012-06-22
    • 1970-01-01
    • 2013-01-28
    • 2017-11-10
    • 2011-12-25
    • 1970-01-01
    • 1970-01-01
    • 2013-10-07
    相关资源
    最近更新 更多