Я не знаю, как заставить мои всплывающие подсказки работать
Поэтому я прочитал несколько веток, в которых работали подсказки, и попытался отработать это безрезультатно.
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 ответ
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";
}
};