RCP SWT Eclipse - 清除复合容器

时间:2015-07-13 06:56:02

标签: java swt eclipse-rcp

我需要你的帮助...... 我有一个2个Composite容器。其中一个带2个单选按钮,第一个单选按钮是CHART,另一个是REPORT。当用户选择图表时,在第二个Composite中加载一个图表,一切正常但我不知道当用户选择“报告”时如何删除图表,有没有办法清除或删除它?我尝试过但我找不到解决办法。 谢谢!

contenedor_chart = new Composite(parent, SWT.NONE);
        contenedor_chart.setLayout(new FillLayout());
        FillLayout filllayout = new FillLayout();
        filllayout.marginWidth = 50;
        filllayout.marginHeight = 50;

        contenedor_chart.setLayout(filllayout);
        CategoryDataset dataset = cbch.createDataset();
        JFreeChart chart = cbch.createChart(dataset);
        final ChartPanel chartPanel = new ChartPanel(chart);
        chartPanel.setPreferredSize(new java.awt.Dimension(400, 170));
        new ChartComposite(contenedor_chart, SWT.NONE, chart, true);

1 个答案:

答案 0 :(得分:2)

您可以通过调用dispose方法来处置您不再需要的控件:

Control chart = ... chart control

chart.dispose();

只是调用dispose不会回收控件使用的空间,除非你强制重新布置控件。例如,列出整个Shell使用:

Shell shell = ... current shell

shell.pack();

布置shell中的控件并调整shell大小以适应。

如果您想重复使用图表,请不要拨打disposepack。您只需在控件上调用setVisible(false)即可。

您还可以使用StackLayout来布局Composite中的多个控件,或使用Eclipse PageBook控件。