2012-08-08 3 views
3

FormLayout의 FormData가 어떻게 작동하는지 설명 할 수 있습니까? FormAttachment 생성자와 그 매개 변수 (numerator, offset, denominator)를 이해하려고합니다. 당신은 그 중 하나, 둘 중 하나 또는 모든 매개 변수가 필요할 때 ... 또한, 버튼이나 라벨 같은 위젯을 추가하는 그룹 (또는 합성물)이있는 경우 해상도를 사용하여 크기를 조정할 필요가 있습니다 FormData, 그룹도 FormLayout을 가져야합니까? 있다면 두 개의 정수 매개 변수 -FormLayout, FormData 및 controls

새로운 FormAttachment을 (INT 분자가, 오프셋 INT) : 나는 일반적으로 두 가지 일반적으로 사용하는 양식의 레이아웃 그룹의 폭하지만

답변

4

FormAttachment 여러 다른 생성자가 어떤 변화를 지정 시도 첫 번째 매개 변수는 부모 가장자리에서 백분율을 나타냅니다. FormAttachment를 삽입하는 FormData 객체의 슬롯으로 FormData.top, data.bottom, data.left 및 FormData.right 중 어느 에지가 결정됩니까?

new FormAttachment (Control control, int offset) - 부모에 대해 개체의 위치를 ​​지정하는 대신 개체를 다른 자식 개체 옆에 배치합니다. 이것은 이전 생성자와 함께 작동하여 부모에 대해 하나의 요소를 효과적으로 "앵커"한 다음 앵커를 기준으로 다른 요소를 배치하여 레이아웃을 작성합니다. 또한 전체 레이아웃을 다시 만들 필요없이 전체 레이아웃에 요소를 쉽게 옮기고 삽입 할 수 있습니다.

기타는이 두 가지 테마의 변형입니다. FormAttachment (int numerator, int denominator, int offset)는 두 개의 정수 매개 변수가있는 FormAttachment와 동일하지만 분모가 두 개이면 "100"이됩니다. 즉 분자가 백분율로 바뀝니다. 그러나 너는 가로 질러 1/2의 (1, 2, 0) 또는 공간의 1/3을위한 (1, 3, 0)과 같은 것을 말할 수 있습니다.

그룹에 정의 된 레이아웃이 필요한지 여부는 모르겠지만 일반적으로 모든 상위 컴포지트에는 하위 요소를 표시하기 위해 레이아웃이 정의되어 있어야합니다.

FormData formData = new FormData(); 
formData.left = new FormAttachment (0, 0); // Attach at the 0% left with 0 offset 
formData.right = new FormAttachment (100, 0); // Attach at the 100% right with 0 offset 

이클립스 사이트 FormLayout을 보여주는 좋은 조각을 많이 가지고, 체크 아웃 : 당신이 부모가 크기를 조절 같은 요소의 크기를 조정하려면, 하나의 옵션은 두 요소의 왼쪽과 오른쪽이하는 아이를 첨부하는 것입니다 :

http://www.eclipse.org/swt/snippets/

스크롤 FormLayout 섹션으로.