【发布时间】:2012-03-09 23:08:15
【问题描述】:
我正在编写一个程序,其中有一个 JFrame,我想从中删除所有组件,然后只添加一个组件并重新绘制框架。到目前为止,我所拥有的是类似于下面的代码(在实现 JFrame 的对象中调用,其中 StartPanel 实现 JPanel):
removeAll();
startPanel = new StartPanel();
startPanel.setVisible(true);
add(startPanel);
revalidate();
repaint();
但是,当我运行代码时,它会显示一个空窗口(不是 startPanel),当我最小化/调整窗口大小时,窗口会变黑。如果我省略了removeAll() 并且 JFrame 上还没有元素,它会很好地显示 startPanel。关于如何实际删除所有内容,然后让新面板仍然显示的任何想法?
【问题讨论】:
-
一句话:CardLayout
-
@HovercraftFullOfEels 可能有效,但还有其他方法可以手动完成吗?为什么 removeAll() 没有像我认为的那样工作?如果在代码的其他部分我需要一些不同组件的组合(不只是一次显示一个),所以我不想要 CardLayout 怎么办?
标签: java swing jframe repaint removeall