SWT标签大小未正确更新

问题描述 投票:3回答:3

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

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

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

我试着没有运气就打电话给label.update()label.redraw()

java swt
3个回答
12
投票

尝试调用parent.layout(),其中parent是包含您的标签的Composite。另见Understanding Layouts in SWT


2
投票

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


0
投票

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

根据getParent().layout()的文档,你应该调用控件本身的requestLayout(),而不是@kingargyle所说的父母。

我一直做的是label.requestLayout(),它完美无缺。

© www.soinside.com 2019 - 2024. All rights reserved.