在我的Java应用程序中,我只使用两个名为Panel1
,Panel2
的不同面板。两个面板都有自己的ChartPanel
JFreeChart
来生成动态图表。如果我想通过使用来清除它,
if(Panel1.getComponentCount() != 0) Panel1.remove(Graph.CPanel);
if(Panel2.getComponentCount() != 0) Panel2.remove(Graph1.CPanel1);
Panel1.repaint();
Panel2.repaint();
上面的代码意味着,它只是删除面板一个内容。面板2仍然显示图表面板,但是没有运行。为什么第二小组没有删除其内容?
答案 0 :(得分:2)
虽然您可以选择删除视图组件(需要revalidate()
),但更好的选择是更新模型并让视图响应。引用了一些相关示例here。
答案 1 :(得分:0)
Panel1.removeAll();
Panel2.removeAll();
以上语句成功删除了这些面板中的所有组件。