超链接不在JTable中触发

时间:2012-09-19 13:08:53

标签: java swing

我尝试使用扩展TableCellRenderer的自定义JLabel - 这显示了我想要的内容。 默认情况下,JLabel'识别'HTML

`<html><body><img src='http://www......jpg'><br>Some Text
<a href='http://www.myDomain.com'>Click Here</a>Some More Text</body></html>`

但是JLabel没有实现addHyperlinkListener,因此点击该链接永远不会受到尊重。

如果我尝试使用扩展 TableCellRenderer JTextPane进行相同操作,则不会显示“图片”,只显示默认的“已损坏”图片。 在这种情况下,JTextPane确实会实现addHyperlinkListener,但同样不会受到尊重。 (是的,我创建了一个听众。)

如果我对扩展 TableCellRenderer JEditorPane尝试相同的操作,那么再次显示'image',只显示默认的'broken'图像。 在这种情况下,JTextPane确实会实现addHyperlinkListener,但同样不会受到尊重。 (是的,我创建了一个听众。)

1 个答案:

答案 0 :(得分:4)

无论您向TableCellRenderer返回的组件注册了多少个侦听器,它们都永远不会被调用。该组件不包含在表中,但仅用作图章。结果,事件永远不会到达那些听众。这个概念在Swing table tutorial(在渲染器和编辑器部分)中进行了解释。

您可以查看在JTable中添加可点击按钮的Table Button column示例。可以使用相同的概念在JTable中包含超链接。

您可能还会发现以下有关"Adding a hyperlink in a JLabel"有趣的问题。