SWT:sashform孩子的宽度问题

时间:2011-01-12 16:59:48

标签: java swt

我的应用程序有一个带有两个孩子的水平SashForm。最左边的应该总是至少200像素宽。所以我在左侧组件中添加了一个ControlListener。在controlResized事件中,我检查组件的宽度。当它小于200时,我将其边界的宽度设置为200.它显然可以在组件调整到该宽度时起作用,但是窗框停止工作 - 窗框不再可见,它仍然在组件下面。

有人知道我错过了什么吗?

我试过了:

component.addControlListener(new ControlAdapter() {
@Override
public void controlResized(ControlEvent e) {
if (component.getBounds().width < 200) {
Rectangle bounds = component.getBounds();
bounds.width = 200;
component.setBounds(bounds);
}
}
});

2 个答案:

答案 0 :(得分:0)

只是一个猜测,但也许您需要在以编程方式调整内部组件的大小后调用SashForm上的pack()或layout()。

答案 1 :(得分:0)

here就是一个例子