我正在写一个程序,我有一个JFrame,我想删除它的所有组件,然后只添加一个组件,并重新绘制框架。到目前为止,我所拥有的是类似于下面代码的东西(在实现JFrame的对象中调用,其中StartPanel实现JPanel):
removeAll();
startPanel = new StartPanel();
startPanel.setVisible(true);
add(startPanel);
revalidate();
repaint();
然而,当我运行代码时,它显示一个空窗口(不是startPanel),当我最小化/调整窗口大小时,窗口变黑。如果我省略了removeAll()
,并且JFrame上没有元素,它会很好地显示startPanel。有什么想法,如何实际删除一切,然后让新的面板仍然显示?
3条答案
按热度按时间5sxhfpxr1#
必须调用
removeAll()
尚未被覆盖为add()
或remove()
,以便根据需要转发到contentPane
。nzrxty8p2#
假设你的目标是在清除框架后添加其他东西,你应该在添加这些组件后调用validate来更新它。
20jt8wwn3#