我不知道如何让我的工具提示工作

时间:2013-12-20 19:16:56

标签: java jtable tooltip netbeans-7.4

所以我读了几个有工具提示工作的线程,试图解决这个问题无济于事。

import 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中的任何地方显示工具提示。所有帮助表示赞赏。 :)

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

1 个答案:

答案 0 :(得分: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";
    }
};