Change contentpane of Frame after button clicked

后端 未结 3 1700
不思量自难忘°
不思量自难忘° 2020-12-19 06:41

I want to be able to set a JFrame\'s contentpane after a button inside one of that frame\'s JPanels has been clicked.

My architecture consists of a controller which

3条回答
  •  爱一瞬间的悲伤
    2020-12-19 07:34

    Call revalidate, then repaint. This tells the layout managers to do their layouts of their components:

    JPanel contentPane = (JPanel) frame.getContentPane();
    
    contentPane.removeAll();
    contentPane.add(panel);
    contentPane.revalidate(); 
    contentPane.repaint();
    

    Better though if you just want to swap JPanels is to use a CardLayout and have it do the dirty work.

提交回复
热议问题