如何使CheckboxTableViewer中的SWT表可滚动?

标清

对于这种特殊情况CheckboxTableViewer,我找不到任何答案(使用),所以我希望它不会重复。

createPartControl()在Eclipse视图(3.x)中具有以下内容

我正在尝试在中显示两个按钮和一个可检查的表格GridLayout,如下所示

-------------------
| Button | Button |
-------------------
|      Table      |
-------------------

没什么壮观的。到目前为止,一切都显示正常。我的表格嵌入在内CheckboxTableViewer,只有一列,有时内容(String)的长度大于列的宽度。因此,我试图使Table(通过viewer.getTable(),未显式构造!)可滚动以使所有内容可用。这行不通,我不明白为什么。

我打周围的SWT样式位(SWT.H_SCROLLSWT.V_SCROLL),我试过ScrollableComponent,但无济于事。我无法正常ScrolledComponent工作,因为我没有显式构造表,因此无法setContents()正常工作。

以下是我的主旨createPartControl()

public void createPartControl(Composite parent) {
    parent.setLayout(new GridLayout(2, false));

    addSelectionButtons(parent); // Works

    myTableViewer = CheckboxTableViewer.newCheckList(parent, SWT.BORDER);
    myTableViewer.getTable().setLayoutData(new GridData(SWT.FILL, SWT.CENTER, true, false, 2, 1));

    Table myTable = (Table) myTableViewer.getControl();
    TableLayout tableLayout = new TableLayout();
    tableLayout.addColumnData(new ColumnWeightData(100, 50, true));
    myTable.setLayout(tableLayout);

    myTableViewer.setContentProvider(new MyContentProvider());

    TableViewerColumn viewerCol = new TableViewerColumn(myTableViewer, SWT.LEFT);
    TableColumn col = viewerCol.getColumn();
    col.setText("My column");
    viewerCol.setLabelProvider(new ColumnLabelProvider() {
        @Override
        public String getText(Object element) {
            return text; // Dummy var
        }
    });

    myTableViewer.setInput(getInput()); // Gets model
    myTableViewer.getTable().setHeaderVisible(true);
    myTableViewer.getTable().setLinesVisible(true);
}

我知道这是边界问题“请给我codez”,但是我真的找不到此设置的问题。

标清

我已经设法解决了这个问题,回到第一点,然后以我能找到的最常见的方式重新实现。IE:

  • 我添加了一个适当的LabelProvider(并删除了ColumnLabelProvider),
  • GridData在表格上设置一个简单的布局数据对象(否则就不会弄乱它),
  • 并简化了该TableColumn部分(尽管表中只有一列,但我仍然需要声明aTableColumn才能设置列标题)。注:TableColumn必须pack()编,否则内容不会显示。TableColumnAPI中:“使接收器调整为首选大小。

简单且有效。

public void createPartControl(Composite parent) {
  parent.setLayout(new GridLayout(1, true));

  addSelectionButtons(parent); // Adds select/deselect all buttons

  myTableViewer = CheckboxTableViewer.newCheckList(parent, SWT.BORDER | SWT.H_SCROLL | SWT.V_SCROLL);
  myTableViewer.getTable().setLayoutData(new GridData(GridData.FILL_BOTH));
  myTableViewer.setContentProvider(new MyContentProvider());
  myTableViewer.setLabelProvider(new MyLabelProvider());
  myTableViewer.setInput(getInput()); // Gets model

  TableColumn column = new TableColumn(myTableViewer.getTable(), SWT.FILL);
  column.setText("My column");
  column.pack();

  myTableViewer.getTable().setHeaderVisible(true);
  myTableViewer.getTable().setLinesVisible(true);
}

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

如何始终在SWT表中显示垂直滚动条?

来自分类Dev

Jruby + Swt。如何在线程中连续实现可滚动多行文本的追加

来自分类Dev

JSP中的可滚动表

来自分类Dev

隐藏可滚动表中的垂直滚动

来自分类Dev

使表体可滚动到表中

来自分类Dev

Java SWT使标签可滚动

来自分类Dev

如何锁定swt表或Jface tableviewer滚动条

来自分类Dev

如何创建响应式可滚动表?

来自分类Dev

如何创建响应式可滚动表?

来自分类Dev

表中的可滚动Div-Box

来自分类Dev

HTML中的可滚动嵌套表

来自分类Dev

可滚动的表体

来自分类Dev

可滚动的 DataTables 表

来自分类Dev

如何自动滚动StyledText(SWT)

来自分类Dev

如何使QWidget内容在PyQt中可滚动?

来自分类Dev

UWP如何使Grid在XAML中可滚动

来自分类Dev

如何使SwiftUI列表在tvOS中可滚动

来自分类Dev

如何使Winform在C#中可滚动

来自分类Dev

如何增加终端中可滚动的行数?

来自分类Dev

如何使 Electron 中的 div 可滚动

来自分类Dev

如何知道用户是否已在SWT滚动条中滚动到末尾?

来自分类Dev

如何在可滚动表中保持动态添加的行

来自分类Dev

如何使位于堆栈内部的数据表可滚动

来自分类Dev

如何在可滚动的div内制作固定的标题表?

来自分类Dev

在SKSpriteKit中创建可滚动表的正确方法是什么?

来自分类Dev

可滚动div中的CSS表右边界

来自分类Dev

可滚动div压缩单元格中的宽表

来自分类Dev

如何更改swt表中的单元格间距

来自分类Dev

始终滚动到可滚动表的末尾