問題:
面板操作在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 刷新