0
我有一個帶有BorderLayout的窗口,JPanel包含放置在CENTER上的東西,大小爲800 * 250。我希望在點擊一個按鈕時,JPanel移動到NORTH,另一個JPanel移動到CENTER上。我試過這個,但它只是調整了我的窗戶而沒有做任何事情。動態更改Java中的BorderLayout
我試過這個,但它似乎沒有工作。
public void actionPerformed(ActionEvent e) {
frame.setPreferredSize(new Dimension(800,550));
frame.removeAll();
frame.add(northpanel, BorderLayout.NORTH);
frame.add(southpanel, BorderLayout.CENTER);
frame.getContentPane().repaint();
frame.getContentPane().revalidate();
frame.pack();
}
northpanel之前設置在CENTER上。
謝謝。 :)
你可以嘗試重新繪製框架本身,而不是內容窗格上? – lekroif
不起作用。 :( – Casteurr
噢,我想我知道了,通常add方法被覆蓋,所以他們添加它們將組件添加到JFrame內容窗格,但removeAll方法不是,所以你必須在內容上調用removeAll() 。窗格 frame.getContentPane()的removeAll(); 試試這個 – lekroif