Java RCP SWT Eclipse-清除复合容器

Java RCP SWT Eclipse-清除复合容器,java,swt,eclipse-rcp,Java,Swt,Eclipse Rcp,我需要你的帮助。。。 我有一个2复合容器。其中一个有2个单选按钮,第一个单选按钮是图表,另一个是报告。当用户选择图表时,图表会加载到第二个组合中,一切正常,但当用户选择“报告”时,我不知道如何删除图表,有没有办法清除或删除它?我试过了,但找不到解决办法。 谢谢 您可以通过调用控件的dispose方法来释放不再需要的控件: Control chart = ... chart control chart.dispose(); 仅调用dispose不会回收控件使用的空间,除非您强制控件重新布局。例

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


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

Control chart = ... chart control

chart.dispose();
仅调用
dispose
不会回收控件使用的空间,除非您强制控件重新布局。例如,要布置整个
外壳
使用:

Shell shell = ... current shell

shell.pack();
它在壳中布局控件,并调整壳大小以适合

如果要重用图表,请不要调用
dispose
pack
。您只需在控件上调用
setVisible(false)


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

什么类型的图表?组件是如何组织的?请发布相关代码。谢谢Baz,我放了代码谢谢Greg,我尝试了chart.dispose()并且它工作了,但是现在我不知道如何再次获取图表,我的意思是,如果我在选择“报告”后选择单选按钮“图表”,图表就不会再次出现。我尝试了“打包”的方法,但我想我做错了什么。我将部分代码-->if(boton_listados.isFocusControl()){chart.dispose();}如果调用
dispose
,则无法再次使用该控件。如果您只是想隐藏它,请使用
setVisible(false)
(不要调用
pack
)。是的,我也尝试过setVisible(false),但我认为这不是最合适的方法,因为两个单选按钮必须显示不同的内容,我不知道这是否是最好的方法。嗨,格雷格!,再次感谢!一个问题:我正在尝试你推荐的Stacklayout,它第一次工作,但是当我调整应用程序的主窗口时,图表消失了,你知道原因吗?我会编辑代码给你看,谢谢你的帮助!谢谢
Shell shell = ... current shell

shell.pack();