SWT标签大小未正确更新

时间:2011-09-26 12:16:35

标签: java swt

我是Java / SWT的新手。我在使用SWT label时遇到了一些麻烦。

当我更新标签上的文字时,其尺寸未正确更新(标签被剪切,与原始尺寸相符)。但是,如果我在对话框中执行非常小的调整大小,则会正确更新大小。

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

我试图在没有运气的情况下致电label.update()label.redraw()

3 个答案:

答案 0 :(得分:12)

尝试致电parent.layout(),其中parent是包含您的标签的Composite。另请参阅Understanding Layouts in SWT

答案 1 :(得分:2)

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

答案 2 :(得分:0)

  

不鼓励使用此方法,因为这是触发布局的最不高效的方法。使用layout(true)会丢弃所​​有缓存的布局信息,即使是未更改的控件也是如此。与在布局本身上调用此方法相比,在布局中已更改的每个控件上调用Control.requestLayout()效率要高得多。

基于getParent().layout()的文档,您应该在控件本身上调用requestLayout(),而不是@kingargyle所说的父控件。

我一直做的是label.requestLayout(),它运行良好。