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);

现在我想向这个表添加内容,第一列我想添加复选框,另外两列想在 for 循环中动态添加字符串值,我如何将这些内容添加到表查看器。

4

1 回答 1

0

首先,如果您只想显示您设置的复选框、字符串和图像,则不需要TableViewer. 改用a Table!如果您需要更复杂的东西,例如显示任意 Java 对象,查看器会很有用。

  1. 如果要添加复选框,请使用CheckboxTableViewerICheckStateProvider。您需要创建具有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 回答