【问题标题】:SWT - show multiple table itemsSWT - 显示多个表项
【发布时间】:2017-04-22 22:50:13
【问题描述】:

有人可以帮我吗? 我在 SWT 中有一个表格,我只想显示一些表格项目,但该表格只显示一个项目,而其他项目则带有垂直滚动。我想显示所有内容,无需滚动。我尝试使用 SWT_NO_SCROLL 选项但不工作。我有一个创建表格的方法和其他填充它的方法,创建一个新的表格项目,它们工作得很好,问题是只显示第一个项目而另一个正在滚动。

我的代码是:

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

【问题讨论】:

  • 如何设置表格的垂直尺寸?您使用的是 Layout 还是 setBounds?

标签: java swt tableviewer


【解决方案1】:

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

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

如果您没有其他设置对话框/窗口大小的东西,您可能需要指定表格高度提示:

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

【讨论】:

  • 格雷格!你是个天才!我没有意识到缺少该代码。总的来说,我是 SWT 和 Java 的新手,所以我要学的东西太多了。非常感谢!!!!!!
  • 打扰一下 Greg,我看到你在 RCP /SWT 应用程序方面有很多经验,你知道创建一个具有 3 个视角快捷方式的工具栏是否非常困难,可以在何时切换我打开应用程序?因为我找不到太多关于 SWT 的信息。
  • SWT 只是低级控件。透视图是 Eclipse RCP 特性
猜你喜欢
  • 2013-09-22
  • 1970-01-01
  • 2018-08-27
  • 1970-01-01
  • 1970-01-01
  • 2012-06-21
  • 1970-01-01
  • 2021-09-17
  • 2017-06-19
相关资源
最近更新 更多