Java JPanel面板更新、重畫


問題:

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

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM