Java EclipseRCP表动态更新
我想在视图部件中创建一个表,该表将动态更新(行数、列数、列名)。模型是字符串数组的集合。我可以这样做吗?最简单的方法是使用TableViewer实例,指定其内容提供者,然后每次更改其内容时都可以调用其refresh()方法。@itun。动态显示列的最简单方法是创建所有列,并将不需要的列的宽度设置为零。 下面是创建动态列的另一种方法(我正在使用)Java EclipseRCP表动态更新,java,eclipse,rcp,Java,Eclipse,Rcp,我想在视图部件中创建一个表,该表将动态更新(行数、列数、列名)。模型是字符串数组的集合。我可以这样做吗?最简单的方法是使用TableViewer实例,指定其内容提供者,然后每次更改其内容时都可以调用其refresh()方法。@itun。动态显示列的最简单方法是创建所有列,并将不需要的列的宽度设置为零。 下面是创建动态列的另一种方法(我正在使用) 为列(列名、方向、数据提供程序)创建扩展点 使用步骤1创建的扩展 在视图中创建列的实现 String[] id = preferences.ge
String[] id = preferences.getString(PREFS_COLUMNS).split(";");
for (int i = 0; i < id.length; i++) {
String name = "";
int style = SWT.LEFT;
Image image = null;
ILabelProvider provider = registry.createLabelProvider(id[i]);
if (provider != null) {
name = registry.getName(id[i]);
style = registry.getOrientation(id[i]);
if (provider instanceof ITableLabelProvider) {
name = ((ITableLabelProvider) provider).getColumnText(null, i);
image = ((ITableLabelProvider) provider).getColumnImage(null, i);
}
} else {
LogFactory.getLog(getClass()).warn("Missing column [" + id[i] + "]");
}
if (index < table.getColumnCount()) {
tableColumn = table.getColumn(index);
if (tableColumn.getData("labelProvider") != null)
((ILabelProvider) tableColumn.getData("labelProvider")).dispose();
} else {
tableColumn = new TableColumn(table, style);
tableColumn.addControlListener(columnControlListener);
tableColumn.addSelectionListener(columnSelectionListener);
tableColumn.addDisposeListener(new DisposeListener() {
public void widgetDisposed(DisposeEvent e) {
if (e.widget.getData("labelProvider") != null)
((ILabelProvider) e.widget.getData("labelProvider")).dispose();
}
});
}
tableColumn.setText(name);
tableColumn.setAlignment(style);
tableColumn.setImage(image);
tableColumn.setMoveable(true);
tableColumn.setData("labelProvider", provider);
tableColumn.setData("columnId", id[i]);
index++;
}
String[]id=preferences.getString(PREFS_列).split(“;”);
for(int i=0;i
你能给我一段代码吗?因为很难找到有用的东西。我读过关于TableViewer的文章。你仍然可以用一个简单的例子来解释我的任务。先看一下这个教程:我看到了这个,但它没有解释一件事。如何更改列名和列号?如果要更改列名,只需从TableViewerColumn实例检索列并调用setName()。如果要添加列,请创建新的TableViewerColumn实例。就这样