2012-09-19 40 views
0

我嘗試使用延伸爲JLabel的自定義TableCellRenderer - 這隻顯示我想要的內容。 默認情況下JLabel「承認」 HTMLJTable中沒有觸發的超鏈接

`<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,然後再次不顯示「形象」,只是默認「破」的圖像相同。 在這種情況下,JTextPane確實實施了addHyperlinkListener,但它仍然沒有兌現。 (是的,我創建了一個監聽器。)

回答

4

無論您向TableCellRenderer返回的組件註冊了多少個監聽器,它們都不會被調用。組件不包含在表中,但僅用作郵票。因此,事件永遠不會到達那些聽衆。這個概念在Swing table tutorial(在渲染器和編輯器部分)中有解釋。

您可以查看Table Button column示例,該示例在JTable中添加了可點擊的按鈕。可以使用相同的概念在JTable中包含超鏈接。

您可能還會發現關於"Adding a hyperlink in a JLabel"有趣的以下SO問題。