所以我读了几个有工具提示工作的线程,试图解决这个问题无济于事。
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 :(得分: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";
}
};