問題:
面板操作在Java程序設計中很常見,有的時候更是需要對面板進行相應的操作,比如點擊按鈕對面板進行更新或者重畫
解決思想:
1、移除JPanel/Panel面板的所有組件,重新構建一個JPanel/Panel面板,在新面板上重新構建所需要的組件
缺點:重新構建一個JPanel/Panel面板后,將新面板加載到之前的面板上,造成了系統資源的浪費,另外導致后續操作的不便,還有一點值得注意,如果之前的JPanel/Panel面板其中的組件使用自動拉寬或者拉高的操作的話,加載的新面板會縮小到默認,就是說,新面板之外有很大的一塊空白,這是由於新面板使用的系統默認大小(新面板中的組件總占用大小),而加載進去之后不會 自動拉寬或者拉高新面板,及時新面板中的組件設置的自動拉寬/拉高,一下附圖對比
初始面板

重新加載的面板

解決方式:
1、重新構建另外一個JPanel/Panel面板
infoPanel.removeAll();
infoPanel.add(buildPanel(component));
public static JPanel buildPanel(Component c){
JPanel panel = new JPanel();
/**
* 加載組件代碼(略)
*/
return panel;
}
infoPanel.revalidate();
2、在JPanel/Panel面板上重新加載組件
infoPanel.removeAll();
//如果只需要添加組件的話,removeAll()可以省略
reSetPanel(infoPanel,c);
public static void reSetPanel(JPanel panel,Component c){
/**
* panel.add(c);
* 加載組件代碼(略)
*/
}
infoPanel.revalidate(); //重畫方法,對infoPanel進行刷新
轉自:(1條消息) Java JPanel面板更新、重畫_Kilper的專欄-CSDN博客_java jpanel 刷新
