0

私はこのようなテーブルビューアを実装しています

folderAssociationTable = componentsRenderer.createTableWidget(container, SWT.BORDER | SWT.MULTI  | SWT.FULL_SELECTION, 2, true);

        folderAssociationTable.addListener(SWT.MeasureItem, new Listener() {
            public void handleEvent(Event event) {
                event.height = 20;
            }
        });
        tableViewer  = new TableViewer(folderAssociationTable);
        tableViewer.getTable().setHeaderVisible(true);
        tableViewer.getTable().setLinesVisible(true);
        tableViewer.setContentProvider(new ArrayContentProvider());


        TableColumn column = new TableColumn(tableViewer.getTable(), SWT.NONE);
        column.setText("CheckBox");
        column.setWidth(100);
        checkBoxColumn = new TableViewerColumn(tableViewer, column);


        column = new TableColumn(tableViewer.getTable(), SWT.NONE);
        column.setText("Source Folder");
        column.setWidth(200);
        sourceFolderColumn = new TableViewerColumn(tableViewer, column);

        column = new TableColumn(tableViewer.getTable(), SWT.NONE);
        column.setText("Target Folder");
        column.setWidth(200);
        targetFolderColumn = new TableViewerColumn(tableViewer, column);

今、私はこのテーブルにコンテンツを追加したい、最初の列にチェックボックスを追加したい、そして別の2つの列に for ループで文字列値を動的に追加したいのですが、これらのコンテンツを Table Viewer に追加するにはどうすればよいですか?

4

1 に答える 1

0

まず、設定したチェックボックス、文字列、および画像を表示するだけの場合は、必要ありませんTableViewerTable代わりにaを使用してください。ビューアは、任意の Java オブジェクトを表示するなど、より複雑なものが必要な場合に役立ちます。

  1. チェックボックスを追加する場合は、 と を使用CheckboxTableViewerしますICheckStateProvider。スタイリッシュなテーブルを作成する必要がありますSWT.CHECK
  2. 値を追加するには、ビューアに入力を設定する必要があります。の場合ArrayContentProvider、これは単なる配列またはコレクションです。

    // ModelObject is whatever type of objects you want to show. Maybe just String...
    List<ModelObject> inputList = new ArrayList<ModelObject>();
    // build the list
    while (...) {
        ModelObject newObject = ...
        inputList.add(newObject);
    }
    
    tableViewer.setInput(inputList);
    

    後でリストを変更する必要がある場合は、 を呼び出しますtableViewer.refresh()

残りについては、Vogella チュートリアルを参照してください。

于 2013-02-05T14:27:30.593 に答える