2015-01-10 3 views
1

다음 코드는 두 열과 두 행이있는 SWT 테이블을 만듭니다. 내 시스템에서 결과 쉘/테이블은 다음과 같습니다SWT TableItem : 왼쪽 패딩/들여 쓰기를 제거하는 방법?

enter image description here

내가 도움이되지만 각 셀의 텍스트 앞에 여분의 들여 쓰기/간격/패딩 어디에서 오는지 궁금 수 없습니다. 나는 웹을 검색해 그것을 제거 할 수있는 모든 방법을 시도했지만 길을 찾을 수는 없다. 추가 간격 (위 이미지에서 빨간색으로 표시)을 제거하려면 어떻게합니까?

시스템 정보 :

  • 리눅스 민트 17
  • SWT 4.4 x86_64에

링크 :

이 예는 원래 java2s.com에서 가져온 약간 수정 . 원본 사이트의 스크린 샷에는이 간격/들여 쓰기가 표시되지 않습니다.

코드는이 문제를 재현하는 방법 :

public class SwtTableItemIssue { 
    public static void main(String[] a) { 
    Shell shell = new Shell(Display.getDefault()); 
    shell.setSize(200, 180); 
    shell.setLayout(new FillLayout()); 

    Table t = new Table(shell, SWT.BORDER); 
    t.setHeaderVisible(true); 

    TableColumn tc1 = new TableColumn(t, SWT.NONE); 
    TableColumn tc2 = new TableColumn(t, SWT.NONE); 
    tc1.setText("First Name"); 
    tc2.setText("Last Name"); 
    tc1.setWidth(70); 
    tc2.setWidth(70); 

    new TableItem(t, SWT.NONE).setText(new String[] { "Tim", "Hatton" }); 
    new TableItem(t, SWT.NONE).setText(new String[] { "Caitlyn", "Warner" }); 

    shell.open(); 
    shell.layout(); 

    Display display = Display.getDefault(); 

    while (!shell.isDisposed()) { 
     if (!display.readAndDispatch()) { 
     display.sleep(); 
     } 
    } 

    display.dispose(); 
    } 
} 
+0

관련/원본 문제 : https://github.com/syncany/syncany/issues/346 – binwiederhier

+0

Mac OS X에서 확인을 표시합니다. 열 이미지에 공백이있는 것처럼 보입니다. Linux 관련 문제 일 수 있습니다. –

+0

Linux Mint에서 SWT의 이전 버전과 잘 작동합니다. 여기 SWT 4.4에서도 작동하지 않습니다. – Baz

답변

3

좋아, 약간의 연구를했고, 그것이 GTK3 문제입니다 밝혀졌습니다.

버전 4.4부터 SWT는 기본적으로 GTK3을 사용합니다 (사용 가능한 경우). GTK3 및 GTK2로 코드를 테스트했으며 후자에서 작동합니다.

이제 세 가지 옵션이있어 : 그것을 해결하기 위해 SWT 팀

  1. 기다립니다.
  2. 이전 SWT 버전으로 되돌아갑니다.
  3. SWT (4.4)가 GTK3 대신 GTK2를 사용하도록합니다.

두 가지 해결책 모두 이상적이지만 다른 옵션은 표시되지 않습니다.


당신은 환경 변수를 설정하여 GTK2를 사용하여 SWT를 강제 할 수

export SWT_GTK3=0 

하는 응용 프로그램을 시작하기 전에이 영구적으로 설정하거나 그것을마다 실행하려면 다음 중 하나를해야합니다.

Here은 SWT 4.4의 릴리스 노트입니다.

+1

감사합니다.SWT_GTK3 env 변수를 해결 방법으로 사용하고 SWT 버그로보고합니다. 어쩌면 나중에 출시 될 때 수정 될 것입니다. – binwiederhier

+1

버그 신고 : https://bugs.eclipse.org/bugs/show_bug.cgi?id=457196/https://bugs.eclipse.org/bugs/show_bug.cgi?id=456522에 대한 SWT_GTK3 = 0 테스트 그리고 그것은 그것도 작동합니다. SWT/GTK3 테이블 구현은 다소 버그가있는 것처럼 보입니다. – binwiederhier

관련 문제