2013-12-20 35 views
0

因此,我阅读了几个有工具提示工作的线程,并试图解决这个问题无济于事。我不知道如何让我的工具提示工作

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中的任何位置显示一个提示数组拉弦。所有的帮助表示赞赏。 :)

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

+0

参见[*指定工具提示细胞*](HTTP://文档.oracle.com/JavaSE的/教程/ uiswing /组件/ table.html#celltooltip)。 – trashgod

+0

您是否尝试过使用setToolTipText方法? –

+0

我不是这样做的。我很新的这个jtable的东西 – Jest

回答

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"; 
    } 
}; 
+0

我最初是这样的,但它给了我“找不到符号”的错误。看来我把这个方法放在了错误的地方,但我不知道该把它放在哪里。 – Jest

+0

@Jest,您需要扩展JTable来覆盖该方法。请参阅编辑。 – camickr

+0

k所以我现在做了,但我不知道该写什么: JTable table = new JTable(here) – Jest

相关问题