[英]How I can update a panel with the same panel?
我会多次更换同一面板,但不知道该怎么办。 我创建了一个“ 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,而不必每次单击都创建一个新对象,但事实并非如此!
您必须调用repaint()和revalidate()才能刷新面板。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.