2016-08-04 3 views
0

열이있는 Java SWT 테이블을 만들려고합니다. 가장 왼쪽 열은 체크 박스를 포함하는 열입니다. 이것은 내가 지금까지 가지고있는 코드입니다.열이있는 swt 테이블에 체크 박스 추가하기

panelSelector = new Composite(composite, SWT.H_SCROLL); 
    //panelSelector.setBackgroundImage(SWTResourceManager.getImage(UniverseAnalyzerItem.class, "/img/LandscapeTools/UniverseAnalyzer.png")); 
    panelSelector.setLayout(null); 

    ScrolledComposite scrolledComposite = new ScrolledComposite(panelSelector, SWT.BORDER | SWT.V_SCROLL|SWT.H_SCROLL); 
    scrolledComposite.setBounds(10, 30, 800, 500); 
    scrolledComposite.setExpandHorizontal(true); 
    scrolledComposite.setExpandVertical(true); 

    //tableViewer = new TableViewer(scrolledComposite, SWT.BORDER | SWT.FULL_SELECTION | SWT.V_SCROLL | SWT.CHECK); 
    //table = tableViewer.getTable(); 

    table = new Table(scrolledComposite,SWT.BORDER | SWT.CHECK); 
    table.setTouchEnabled(true); 

    table.setLinesVisible(true); 
    table.setHeaderVisible(true); 

    tableViewer = new TableViewer(table); 

    TableColumn uCheck = new TableColumn(table,SWT.CHECK); 
    uCheck.setWidth(50); 

    TableColumn uName = new TableColumn(table,SWT.CENTER); 
    uName.setText("Name"); 
    uName.setWidth(150); 


    TableColumn uID = new TableColumn(table,SWT.CENTER); 
    uID.setText("ID"); 
    uID.setWidth(50); 

    TableColumn uType = new TableColumn(table,SWT.CENTER); 
    uType.setText("Type"); 
    uType.setWidth(50); 


    TableColumn uPath = new TableColumn(table,SWT.CENTER); 
    uPath.setText("Path"); 
    uPath.setWidth(200); 

    scrolledComposite.setContent(table); 
    scrolledComposite.setMinSize(table.computeSize(SWT.DEFAULT,SWT.DEFAULT)); 

문제는 응용 프로그램을 실행할 때 확인란이 보이지 않는다는 것입니다. 누구든지 내가 뭘 잘못하고 있는지 알아?

답변

0

코드가 입력을 테이블에 설정하지 않습니다. 뷰어 콘텐츠 제공 업체, 레이블 제공 업체를 설정하고 setInput으로 전화 할 때까지는 표에 아무것도 표시되지 않습니다. 코드의 끝 부분에

tableViewer.setContentProvider(ArrayContentProvider.getInstance()); 

tableViewer.setInput(new String [] {"line1", "line2"}); 

추가 테스트가 나를 위해 작동하는 것처럼

.

참고 : SWT.CHECKTableColumn의 올바른 스타일이 아닙니다. 테이블의 확인란에 액세스하는 방법이 아닙니다. TableViewer 대신 CheckboxTableViewer을 사용해야합니다. 그러면 체크 박스에 액세스 할 수있는 추가 방법이 제공됩니다.

관련 문제