2016-08-04 5 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"}); 

を追加テストが私のために働くのと同じように

注:TableColumnの有効なスタイルはSWT.CHECKではありません。これは、テーブルのチェックボックスにアクセスする方法ではありません。 TableViewerの代わりにCheckboxTableViewerを使用する必要があります。これにより、チェックボックスにアクセスする追加の方法が提供されます。

関連する問題