2010-12-22 7 views
3

Eclipse 용 WindowBuilder를 사용하여 합성물에 배치 한 TableViewer을 만들었습니다. TableViewerTableViewer 자체가 삽입 된 SWT Table을 만듭니다.JFace TableViewer를 주변 컴포지트로 크기를 조정 하시겠습니까?

나는 참으로 grabExcessHorizontalSpacegrabVerticalSpace을 설정하여 복합 크기 조정하기 위해 노력했다,하지만 어떻게 나는 테이블도 확인하고 TableViewer이 복합 채우기?

답변

3

코드없이 말하기가 어렵지만 설명에서 사용자의 Composite에 레이아웃을 설정하지 마십시오. 복합체에 TableViewer 만 있으면 composite.setLayout(new FillLayout());을 추가하십시오.

복합 요소에 둘 이상의 자식이있는 경우 GridLayout 또는 MigLayout과 같은 다른 레이아웃이 필요합니다. 그럼 당신은 또한 귀하의 테이블 및 합성의 다른 자녀에 대한 layoutData를 설정해야합니다.

Here은 GridLayout 사용법을 보여줍니다. 더 나은 방법을 찾을 수있는 MigLayout을 배우려면 here을 참조하십시오.

+0

고마워요! 예, 이것이 해결책의 일부였습니다. 또한 setLayoutData()에서 SWT.LEFT 및 SWT.TOP 대신 SWT.FILL을 설정해야했습니다. 별도의 답변에 설명 된대로 #eclipse IRC 채널의 도움으로 방금 해결했습니다. –

4

지금 답변을 얻었습니다 (irc.freenode.net의 #eclipse 채널에 rcjsuen에게 큰 감사).

코드는 다음과 같습니다. 복합 comp = new 복합 (컨테이너, SWT.NONE); comp.setLayoutData (새 GridData (SWT.LEFT, SWT.TOP, true, true, 1, 1));

grabExcessiveHorizontalSpace 및 grabExcessiveVerticalSpace를 true로 설정하고 (setLayoutData() 함수의 3 및 4 매개 변수), 매개 변수 1과 2를 SWT.FILL로 설정하고 FillLayout 다음과 같이 setLayout() 함수가있는 객체입니다.

Composite comp = new Composite(container, SWT.NONE); 
    comp.setLayoutData(new GridData(SWT.FILL, SWT.FILL, true, true, 1, 1)); 
    comp.setLayout(new FillLayout()); 
관련 문제