【发布时间】:2016-05-24 21:06:31
【问题描述】:
我会多次更换同一个面板,但不知道该怎么做。 我创建了一个类“Grafico”,它有一个构造函数,该构造函数使用我在代码中计算的更多参数进行初始化。为简单起见,我将省略这些参数。 "box" 是一个 JComboBox,根据所选项目被激活并创建这些面板 例如:
JPanel middle = new JPanel(new BorderLayout());
Grafico graph1 = new Grafico(.......);
JPanel conf1 = new JPanel();
middle.add(graph1, BorderLayout.CENTER);
middle.add(conf1, BorderLayou.EAST);
frame.getContentPane().add(middle);
box.addItemListener(new ItemListener() {
@Override
public void itemStateChanged(ItemEvent e) {
.........//I do something..I create a new object of type "Grafico" with new parameters........................
Grafico graph2 = new Grafico(.......);
middle.remove(graph1);
middle.add(graph2, BorderLayout.CENTER);
frame.getContentPane().add(middle);
frame.getContentPane().revalidate();
frame.getContentPane().repaint();
}
});
这很有效,但是当我第二次点击 JComboBox 中的一个对象时,我希望它每次都能更新我的 graph2,而不是每次点击都创建一个新对象,但它没有!
【问题讨论】:
-
所以,假设 graph2 存在,你应该更新它。这意味着您需要将 graph2 设为实例字段并检查它是否为空
-
您可以修改我的代码并显示它吗?
标签: java swing updatepanel panel