SWT:通知组合它有一个新的子项

2022-03-16 00:00:00 java swt

如果创建了新的子控件,如何通知aComposite

原因:默认情况下,对于StackLayout不显示子对象。我希望确保默认情况下显示添加到StackLayoutComposite中的第一个控件(这是一个具有SetStackLayout和其他几个帮助器方法的Composite)。目前我是通过重写StackLayoutlayout方法解决的,但这在我眼里很难看。


解决方案

如果要根据新的子项和任何关联的布局数据重新布局父项Composite,只需使用composite.layout(true);.

如果您希望父级通知您小部件层次结构已更改,那么您就不走运了……您能得到的最接近的方法是在显示屏上添加一个SWT过滤,然后等待一个以前不知名的孩子的SWT.Resize事件……我已经这样做了,这是一个项目,但我必须承认代码变得有点难看,因为您还必须监视处理.

相关文章