簡體   English   中英

如何使用相同的面板更新面板?

[英]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()才能刷新面板。

Java Swing revalidate()與repaint()

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM