Java JTable中未触发超链接
我尝试使用一个自定义的Java JTable中未触发超链接,java,swing,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&g
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
,所以点击链接永远不会被尊重
如果我随后对扩展了JTextPane
的TableCellRenderer
尝试相同的操作,则不会显示“图像”,只显示默认的“断开”图像。
在这种情况下,JTextPane
确实实现了addHyperlinkListener
,但同样不受尊重。(是的,我创建了一个侦听器。)
如果我随后对扩展了JEditorPane
的TableCellRenderer
尝试相同的操作,那么“图像”也不会显示,只是默认的“断开”图像。
在这种情况下,
JTextPane
确实实现了addHyperlinkListener
,但同样不受尊重。(是的,我创建了一个侦听器。)无论您向TableCellRenderer
返回的组件注册了多少个侦听器,它们都不会被调用。该组件不包含在表中,但仅用作戳记。因此,事件永远不会到达这些听众。此概念在(渲染器和编辑器部分)中进行了解释
您可以查看在JTable
中添加可单击按钮的示例。相同的概念可用于在JTable
中包含超链接
您还可能会发现下面的问题非常有趣。无论您向
TableCellRenderer
返回的组件注册了多少侦听器,它们都不会被调用。该组件不包含在表中,但仅用作戳记。因此,事件永远不会到达这些听众。此概念在(渲染器和编辑器部分)中进行了解释
您可以查看在JTable
中添加可单击按钮的示例。相同的概念可用于在JTable
中包含超链接
你也可能会发现下面的问题很有趣