我在Vaadin中有一个表,它根据树中选择的数据类型显示数据。对于URL类型数据,它显示一行(两列)URL,另一行显示实际URL,但显示为纯文本。我希望该URL可以在另一个窗口中单击并打开。
我尝试在该案例中添加一个链接,但它显示的内容类似于com.vaadin.ui.Link@596bf9而不是实际链接。这是我使用的代码:
xincoTable.addItem(new Object[]{header, header.equals("URL") ? new Link(value,
new ExternalResource(value)) : value}, i++);
值具有实际的URL字符串。我看到了教程,但它使用生成的列,所以我不确定如何将它拉出来。我想部分问题是在这种情况下只需要该单元格的行为,它在所有其他情况下都是文本,当然在其他行的列中也有其他内容。
有什么想法吗?
答案 0 :(得分:5)
您的问题是包含Link的列的类型是String。列的类型应为Component:
table.addContainerProperty("mylinkproperty", Component.class, null);
然后将属性的值设置为Link或Label,而不是Link或String。