Java Swing JTable中单元格组件的大小为零

Java Swing JTable中单元格组件的大小为零,java,swing,scala,jtable,tablecellrenderer,Java,Swing,Scala,Jtable,Tablecellrenderer,我目前正在编写一个自定义的TableCellRenderer,使用JEditorPane作为JTable的单元格组件。我想让超链接在该组件中可单击 因此,我编写了一个小黑客程序,将在表上触发的鼠标事件转发到特定组件。问题是,我无法使用JEditorPane的viewToModel功能来确定鼠标光标下的文本,因为编辑器窗格的大小始终为零,因此viewToModel始终返回-1 有没有办法让表格单元格中呈现的组件设置正确的大小?你对用另一种方式做这件事有什么建议吗 一些附带信息:我不能使用JText

我目前正在编写一个自定义的
TableCellRenderer
,使用
JEditorPane
作为
JTable
的单元格组件。我想让超链接在该组件中可单击

因此,我编写了一个小黑客程序,将在表上触发的鼠标事件转发到特定组件。问题是,我无法使用
JEditorPane
viewToModel
功能来确定鼠标光标下的文本,因为编辑器窗格的大小始终为零,因此
viewToModel
始终返回-1

有没有办法让表格单元格中呈现的组件设置正确的大小?你对用另一种方式做这件事有什么建议吗


一些附带信息:我不能使用
JTextPane
,因为我使用的是scala编程语言,目前还没有它的实现。此外,我还了解到,通过使用自定义单元格编辑器,可以使用本机事件实现。但我一开始就没法让它工作。例如,我希望通过将鼠标悬停在上面来突出显示链接。但是,据我所见,使用单元编辑器方法是不可能的,因为必须先单击单元才能开始编辑

您可以使用HyperlinkListener,而不是像
viewToModel
这样的东西。问题是,没有向组件传递任何事件。这就是为什么我必须手动将鼠标事件从表转发到组件。那么,如何使用HyperlinkListener呢?当然,您需要将一些事件转发给内部组件,但是一旦适当的鼠标事件到达它们,内部侦听器应该自行工作。特别是,您还需要转发MouseMotionListener处理的MouseEvents。请在自定义的
CellEditor中进行侦听,或使用相邻的组件,例如。我目前正在处理DSquare的尝试。不确定这是否有效,因为组件的大小仍然为零。我不明白自定义编辑器会有什么帮助。它将如何处理鼠标移动而不点击单元格?我不喜欢使用相邻组件的想法,因为我正在编写一个twitter客户端,希望在表中列出tweet。