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