2017-10-25 1 views
0

이것은 하나의 RCP Eclipse APP, 오브젝트 (이름, 수량, 이미지)의 목록이 있으며 FOR 루프와 함께 다운로드됩니다.왜 swt (레이블) 구성 요소의 정렬이 파괴 되었습니까?

이 정보는 다운로드되며 객체의 각 속성은 레이블이있는 APP에 각각 표시됩니다. 이 이러한 세 가지 속성을 정렬 및 표시

lblName[idx] = ComponentProvider.getLabel(composite, getObject().getName(), 8); 
lblName[idx].setBounds(5, pos, 195, 20); 

lblValue[idx] = ComponentProvider.getLabel(composite, getObject().getValue(), 8); 
lblValue[idx].setBounds(205, pos, 73, 20); 

lblStatus[idx] = ComponentProvider.getLabel(composite, "", 8); 
lblStatus[idx].setBounds(280, pos, 39, 20); 
lblStatus[idx].setImage(StateIconManager.getImageForState(getObject().getImg())); 

: 예를 들어

이 작동

[이름] [수량] [이미지], 문제는 여기에 있습니다 : 실행 시간 APP 후 레이블은 항상

enter image description here

어떤 생각을 정렬 된 상태를 유지하도록 : 그것은 다음과 같이 잘못 정렬되어?

+0

이 코드 비트로는 불가능합니다. 대화 상자/양식/...이 SWT 레이아웃을 사용하고 있다면'setBounds' 호출은 레이아웃에 의해 오버라이드됩니다. –

+0

여기에서 할 수있는 것이 있으므로 다시 오버플로되지는 않지만 정렬되지는 않습니다. – BEN

+0

당신은 우리에게 무슨 일이 일어나고 있는지 알 수있는 충분한 코드를 보여주지 못했습니다. 우리에게 적절한 [mcve]를 보여주십시오. –

답변

1

이 콘트롤을 포함하고있는 Composite에는 GridLayout이 사용 된 것으로 보입니다. 은 에서 레이아웃에 의해 관리되고있는 setBounds을 사용할 수 없습니다. 레이아웃은 계산 한 범위로 경계를 재정의합니다.

GridLayout을 사용하고 있으므로 각 컨트롤에 GridData 레이아웃 데이터를 설정해야합니다. GridData에는 제어 도구의 위치와 크기를 제어 할 수있는 많은 필드가 있습니다.

관련 문제