我有一个窗口的BorderLayout,与JPanel包含的东西放在居中,和800*250的大小。我希望在点击按钮时,JPanel移动到北,另一个JPanel在中。我试过了,但它只调整了我的窗口大小,没有做任何其他事情。
我试过了,但似乎不起作用。
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之前。
谢谢。:)
add()和remove()方法被重写,因此它们自动完成内容窗格上的所有操作。记住JFrame只是一个容器,重要的是您的内容窗格。removeAll()方法不会像那样被重写。你应该做的是:
frame.getContentPane().removeAll();
您可以在Oracle网站上阅读更多信息:)
使用顶级容器