我需要你的帮助...... 我有一个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);
答案 0 :(得分:2)
您可以通过调用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
控件。