2011-09-26 8 views
3

저는 Java/SWT에서 새롭게 변경되었습니다. SWT label을 사용하여 몇 가지 문제가 발생했습니다.SWT 레이블 크기가 올바르게 업데이트되지 않았습니다.

레이블의 텍스트를 업데이트 할 때 크기가 올바르게 업데이트되지 않습니다. 레이블은 원래 크기와 관계없이 잘립니다. 그러나 대화 상자에서 아주 작은 크기 조정을 수행하면 크기가 올바르게 업데이트됩니다.

기본적으로 기본 텍스트로 레이블을 만든 다음 데이터를로드 할 때 원래 텍스트보다 큰 실제 텍스트로 레이블을 업데이트합니다.

행운없이 label.update()label.redraw()을 호출 해 보았습니다.

+0

레이아웃에 문제가있을 가능성이 큽니다. 어떤 레이아웃을 사용하고 있습니까? 레이블 크기가 변하면 레이아웃 재 계산을 호출해야합니다. 새로운 텍스트를 label로 설정 한 후에'layoutInstance.layout (true);'메소드를 호출 해보십시오. – Sorceror

+0

컨테이너 구성 요소에'invalidate()/validate()'를 시도 했습니까? –

답변

12

parent.layout()으로 전화 걸기. parent은 레이블이 포함 된 Composite입니다. 또한 Understanding Layouts in SWT을 참조하십시오.

+0

감사합니다. 완벽하게 작업했습니다. 나는 Winforms하는 데 익숙해. 나는 swt에 대한 독서 노력을 할 필요가있다. –

+0

당신을 진심으로 환영합니다. 필요한 것이 있으면 주저하지 말고 .. – Sorceror

1

나는 이것이 오래되었다는 것을 알고 있지만, 컨트롤에 설정할 수있는 LayoutData 설정을 잃지 않습니다. getParent().requestLayout()으로 전화해야합니다. 문서에 따르면 특별히 사용자가 컨트롤의 캐시 된 데이터 설정을 모두 잃어 버리는 getParent().layout()을 사용하지 않습니다.

관련 문제