在一个SWT中动态创建或销毁组件是一个常见的需求,例如属性视图里面的UI会根据选中的节点不同而改变。实现这样一个效果有两种思路:
1.对父容器使用StackLayout布局,StackLayout布局会把子分别放到多个页中,每次只显示其中一个页。这种方式的优点是一次性创建UI组件,中途不用销毁和创建组件。缺点是它不能做到真正的动态,它其实就是把所有可能显示的组件和显示的方式都事先创建出来,要用的时候拿来用。例子暂时不提供,因为没有现成的。
2.第二种解决方式,就是动态的创建和销毁,这里涉及到一个问题,就是父容易刷新的问题。个人解决的方式是在销毁和创建完组件后,调用此方法。
composite.layout(true)