为什么panel2没有删除图表面板?

时间:2014-01-24 11:19:40

标签: java swing jfreechart

在我的Java应用程序中,我只使用两个名为Panel1Panel2的不同面板。两个面板都有自己的ChartPanel JFreeChart来生成动态图表。如果我想通过使用来清除它,

    if(Panel1.getComponentCount() != 0) Panel1.remove(Graph.CPanel);
    if(Panel2.getComponentCount() != 0) Panel2.remove(Graph1.CPanel1);
    Panel1.repaint();
    Panel2.repaint();

上面的代码意味着,它只是删除面板一个内容。面板2仍然显示图表面板,但是没有运行。为什么第二小组没有删除其内容?

2 个答案:

答案 0 :(得分:2)

虽然您可以选择删除视图组件(需要revalidate()),但更好的选择是更新模型并让视图响应。引用了一些相关示例here

答案 1 :(得分:0)

      Panel1.removeAll();
      Panel2.removeAll();

以上语句成功删除了这些面板中的所有组件。