2015-06-14 53 views
0

有人能帮助我吗? 我在SWT中有一个表格,我只想显示一些表格项目,但表格只显示一个项目,而其他项目用垂直滚动显示。我想显示一切,不滚动。我尝试使用选项SWT_NO_SCROLL,但不起作用。我有一个方法创建表和其他填充它创建一个新的表项,他们工作良好,问题是只显示第一个项目,其他滚动。SWT - 显示多个表项

我的代码是:

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

你是如何设置垂直表的大小?你在使用Layout还是setBounds? –

回答

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

Greg!你是个天才!我没有意识到那个代码丢失了。我一般都是SWT和Java的新手,所以我有太多需要学习的东西。非常感谢你!!!!! –

+0

对不起格雷格,我看过你在RCP/SWT应用程序方面有很多经验,你知道创建一个带有3个透视快捷键的工具栏是非常困难的吗?当我打开应用程序时可以切换到这个快捷方式。因为我无法找到关于SWT的许多信息。 –

+0

SWT只是低级别的控件。透视图是Eclipse RCP功能 –