我是Java/SWT新手。我遇到一些问题,使用SWT label。SWT标签尺寸未正确更新
当我更新标签上的文本时,它的大小没有被正确更新(标签被剪切,与原始大小有关)。但是,如果我在对话框中执行了非常小的调整大小,则大小已正确更新。
基本上,我使用默认文本创建标签,然后当我加载数据时,我使用真实文本更新标签,该标签比原始文本更大。
我尝试拨打电话label.update()
和label.redraw()
,但没有运气。
我是Java/SWT新手。我遇到一些问题,使用SWT label。SWT标签尺寸未正确更新
当我更新标签上的文本时,它的大小没有被正确更新(标签被剪切,与原始大小有关)。但是,如果我在对话框中执行了非常小的调整大小,则大小已正确更新。
基本上,我使用默认文本创建标签,然后当我加载数据时,我使用真实文本更新标签,该标签比原始文本更大。
我尝试拨打电话label.update()
和label.redraw()
,但没有运气。
尝试呼叫parent.layout()
,其中parent
是Composite
其中包含您的标签。另见Understanding Layouts in SWT。
谢谢,工作完美。我习惯于Winforms。我需要做一些关于swt的阅读。 –
不客气。如果你需要任何其他的东西,不要犹豫,问问.. – Sorceror
我知道这是旧的,但为了不失去可能在控件上设置的任何LayoutData设置。您应该致电getParent().requestLayout()
。该文档特别不鼓励getParent().layout()
的用户丢失控件上的所有缓存数据设置。
这更可能是布局问题。你使用哪种布局?如果您期望标签尺寸发生变化,您应该调用布局重新计算。尝试在设置新文本进行标注后调用'layoutInstance.layout(true);'方法。 – Sorceror
您是否在容器组件上尝试'invalidate()/ validate()'? –