0

所以我阅读了一些有工具提示工作的线程,并试图解决它无济于事。

导入 java.awt.event.MouseEvent;

public String getToolTipText(MouseEvent e) {
    String tip = "tommy likes trucks";
    java.awt.Point p = e.getPoint();
    int rowIndex = FursJTable.rowAtPoint(p);
    int colIndex = FursJTable.columnAtPoint(p);
    int realColumnIndex = FursJTable.convertColumnIndexToModel(colIndex);
    //if (description[realColumnIndex] = null || description[realColumnIndex] = "") {
    //    tip = null;
    //} else {
    //    tip = description[realColumnIndex];
    //}
    return tip;
}

if 语句应该只从我将设置的数组中提取一个字符串,但即使我只是在代码的开头设置了提示,它也不会在我的 jtable 中的任何地方显示工具提示。感谢所有帮助。:)

我还需要工具提示横跨整行。但这仍然无关紧要,因为我无法让工具提示出现在任何地方。

4

1 回答 1

0
int rowIndex = FursJTable.rowAtPoint(p);
int colIndex = FursJTable.columnAtPoint(p);
int realColumnIndex = FursJTable.convertColumnIndexToModel(colIndex);

getToolTipText(...) 方法是 JTable 的一部分。由于您要覆盖 JTable 中的代码,因此您无需引用实例变量。只需使用:

int rowIndex = rowAtPoint(p);
int colIndex = columnAtPoint(p);
int realColumnIndex = convertColumnIndexToModel(colIndex);

此外,请遵循 Java 命名约定。变量名不应以大写字符开头。

如果您需要更多帮助,请发布适当的SSCCE来演示问题。

编辑:

扩展组件以覆盖单个方法的一种方法是执行以下操作:

JTable table = new JTable( ... )
{
    public String getToolTipText( MouseEvent e )
    {
        return "hello";
    }
};
于 2013-12-20T20:24:38.157 回答