用户界面-在Java中动态更改BorderLayout



我有一个窗口的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网站上阅读更多信息:)

使用顶级容器

相关内容

  • 没有找到相关文章

最新更新