我目前正在尝试实现一个动态Dialog,其中包含一个带有JFace TableViewer的SWT表。当Dialog被实例化时,它会传递一个Array作为列标题然后动态创建(这已经可以),它也会传递一个包含值对的java.util.HashMap。假设每一对代表一行,如(“1”,行的数据集,如行的每个单元格的数据)。现在,就我从几个教程中收集而言,表输入似乎是通过内容提供程序的getElements()方法控制的,该方法获取其参数,即调用setInput()时的输入元素。如果我到目前为止,当不同的单元格数据具有不同类型时,我将如何填充行的单元格,即图片|图片|文字|文字|。我想我要么没有理解内容提供者,要么就像我开始做之前那样简单,因为我不知道我将如何返回表示单元格的getElements()中的Object []上述结构。请赐教!
答案 0 :(得分:1)
我认为内容提供商并不真正关心表格单元格中的不同类型。但标签提供商确实关心。标签提供程序用于表示有关基础输入的一些用户可读“信息”。 ITableLabelProvider
有public Image getColumnImage(final Object element, final int columnIndex)
和public String getColumnText(Object element, int columnIndex);
。正如您所看到的,实现这些方法,您将获得特定单元格中的列号和实际对象。使用一些'instanceof',您可以根据需要显示文本/图像。
答案 1 :(得分:0)
我不知道我将如何在表示上述单元格结构的getElements()中返回Object []
Object[]
也是Object
,Object[][]
(或List<Object>[]
)是Object[]
。