SWT - 显示多个 table 项

SWT - show multiple table items

有人能帮帮我吗? 我在 SWT 中有一个 table,只是我想显示一些 table 项目,但 table 只显示一个项目,其他项目带有垂直滚动。我想显示所有内容,无需滚动。我尝试使用 SWT_NO_SCROLL 选项,但没有用。我有一个创建 table 的方法和其他填充它的方法,创建一个新的 table 项目,它们工作正常,问题是只显示第一个项目,另一个正在滚动。

我的代码是:

private void createTable(Composite parent){

    table = new Table (parent, SWT.BORDER);

    TableColumn tcFile = new TableColumn(table, SWT.LEFT);
    TableColumn tcStatus = new TableColumn(table, SWT.LEFT);

    tcFile.setText("File");
    tcStatus.setText("Status");

    tcFile.setWidth(500);
    tcStatus.setWidth(500);

    table.setVisible(true);
    table.setHeaderVisible(true);
}

private void populateTable(String file, String status){
    TableItem item = new TableItem(table, SWT.LEFT);
    item.setText(new String[] { file, status});

}


Composite top = new Composite(parent, SWT.WRAP);
GridLayout layout = new GridLayout();
layout.marginHeight = -5;
layout.marginWidth = 0;
top.setLayout(layout);

Composite banner = new Composite(top, SWT.WRAP);

banner.setLayoutData(new GridData(GridData.FILL, GridData.VERTICAL_ALIGN_BEGINNING, false, false));
layout = new GridLayout();
layout.marginHeight = 0;
layout.marginWidth = 10;
layout.numColumns = 5;
banner.setLayout(layout);

createTable(top);

您还没有为 Table 指定任何布局数据,请尝试以下内容:

GridData data = new GridData(SWT.FILL, SWT.FILL, true, true);
table.setLayoutData(data);

如果您没有其他设置 dialog/window 大小的东西,您可能需要指定 table 高度提示:

GridData data = new GridData(SWT.FILL, SWT.FILL, true, true);
data.heightHint = 200;  // Vertical size for table
table.setLayoutData(data);