gpt4 book ai didi

java - TableViewer 从 ArrayLists Eclipse 插件添加数据

转载 作者:行者123 更新时间:2023-12-01 12:34:49 25 4
gpt4 key购买 nike

我有以下代码来创建一个TableViewer

TableViewer viewer = new TableViewer(parent, SWT.MULTI | SWT.H_SCROLL | SWT.V_SCROLL | SWT.FULL_SELECTION | SWT.BORDER);
Table table = viewer.getTable();
table.setHeaderVisible(true);
table.setLinesVisible(true);

如何创建 ContentProvider 以便从表的列中的数组列表添加数据?我有这些列表,我想将它们添加到表中。

最佳答案

表中的每一行确实需要一个对象。

如果您创建每行包含一个对象的数组或 ArrayList,则可以使用标准 ArrayContentProvider:

viewer.setContentProvider(ArrayContentProvider.getInstance());

行数据类可能类似于:

class RowData
{
private String [] cols;

RowData(String [] theCols)
{
cols = theCols;
}

String getColumn(int index)
{
return cols[index];
}
}

从现有列表中创建一个数组:

RowData [] rows = new RowData [listSize];

for (int i = 0; i < listSize; i++)
{
rows[i] = new RowData(new String [] {col0List.get(i), col1list.get(i), ...});
}

将其设置为查看器的输入:

 viewer.setInput(rows);

但是只有在查看器中设置内容提供程序和标签提供程序后才能执行此操作。

使用实现ITableLabelProvider的标签提供程序:

 class MyLabelProvider extends LabelProvider implements ITableLabelProvider
{
@Override
public String getColumnText(Object element, int columnIndex)
{
RowData rowData = (RowData)element;

return rowData.getColumn(columnIndex);
}

@Override
public Image getColumnImage(Object element, int columnIndex)
{
return null;
}
}

关于java - TableViewer 从 ArrayLists Eclipse 插件添加数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25684990/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com