2011-09-26 178 views
3

我是Java/SWT新手。我遇到一些问题,使用SWT labelSWT标签尺寸未正确更新

当我更新标签上的文本时,它的大小没有被正确更新(标签被剪切,与原始大小有关)。但是,如果我在对话框中执行了非常小的调整大小,则大小已正确更新。

基本上,我使用默认文本创建标签,然后当我加载数据时,我使用真实文本更新标签,该标签比原始文本更大。

我尝试拨打电话label.update()label.redraw(),但没有运气。

+0

这更可能是布局问题。你使用哪种布局?如果您期望标签尺寸发生变化,您应该调用布局重新计算。尝试在设置新文本进行标注后调用'layoutInstance.layout(true);'方法。 – Sorceror

+0

您是否在容器组件上尝试'invalidate()/ validate()'? –

回答

12

尝试呼叫parent.layout(),其中parentComposite其中包含您的标签。另见Understanding Layouts in SWT

+0

谢谢,工作完美。我习惯于Winforms。我需要做一些关于swt的阅读。 –

+0

不客气。如果你需要任何其他的东西,不要犹豫,问问.. – Sorceror

1

我知道这是旧的,但为了不失去可能在控件上设置的任何LayoutData设置。您应该致电getParent().requestLayout()。该文档特别不鼓励getParent().layout()的用户丢失控件上的所有缓存数据设置。