带有JCustomTooltip的JTable CustomCellRenderer

时间:2014-03-07 20:57:34

标签: java swing jtable jtooltip

嘲笑我。

这里显示的是这个简单的MyCellRenderer示例......

class MyCellRenderer extends DefaultTableCellRenderer {
public Component getTableCellRendererComponent(
                    JTable table, Object value,
                    boolean isSelected, boolean hasFocus,
                    int row, int column) {
    JLabel c = (JLabel)super.getTableCellRendererComponent( // params from above );
    // This...
    c.setToolTipText("I don't want text, I want a custom JComponent here");
    return c;
}
}

但不是简单地访问超级渲染的JLabel并添加一个简单的文本工具提示,我想覆盖该JLabel并使用JCustomToolTip库使用完全自定义的工具提示 http://prefuse.org/doc/api/prefuse/util/ui/JCustomTooltip.html

...但我希望保留超级渲染的JLabel的所有原始属性。唯一改变的是添加了JCustomToolTip。

我已经尝试了一切,似乎没有任何工作。我尝试扩展JLabel并重写createToolTip(),并将该子JLabel返回到表中(所有属性都从超级JLabel复制)......但没有成功。 JTable似乎只识别文本工具提示,而Nimbus没有显示任何原始格式。

我该怎么办?

1 个答案:

答案 0 :(得分:0)

如果我有时间,我会稍后修改我的代码以供将来参考。但我在Stack Overflow上的其他地方找到了解决方案。正如我所怀疑的那样,JTable以不同的方式实现JToolTip,因为它在JTable级别而不是JComponent单元上调用。

Overriding createToolTip() in a custom CellRenderer