[英]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.