我需要你的帮助…我有一个2复合容器。其中一个有2个单选按钮,第一个单选按钮是CHART,另一个是REPORT。当用户选择图表时,第二个合成图中加载了一个图表,一切正常,但我不知道如何在用户选择"报告"时删除图表,是否有任何方法可以清除或删除它?我试过了,但我找不到解决办法。谢谢!
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);
您可以通过调用其dispose
方法来处置您不再需要的控件:
Control chart = ... chart control
chart.dispose();
仅仅调用dispose
不会回收控件使用的空间,除非您强制重新布局控件。例如,布局整个Shell
使用:
Shell shell = ... current shell
shell.pack();
显示shell中的控件,并调整shell的大小。
如果你想重用图表,那么不要调用dispose
或pack
。你可以在控件上调用setVisible(false)
。
您还可以查看使用StackLayout
在Composite
中布局多个控件,或者使用Eclipse PageBook
控件。