2011-09-26 124 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()的用戶丟失控件上的所有緩存數據設置。