Hallöle,
ich schon wieder, und schon wieder mit einem Tooltip-Problem.
Diesmal geht es um Tooltips auf den Headern von JTable-Spalten.
Es gelingt mir zwar, einen Tooltip für den kompletten Header zu setzen, aber nicht für einzelne Spalten.
Hier mein Code:
JTable mTable;
//... sonstige Initialisierung (Modell setzen usw.)
mTable.getTableHeader().setToolTipText("Click to sort! (Tooltip per getTableHeader())");
//das hier funktioniert wunderbar - der Tooltip wird angezeigt.
mTable.setTableHeader(
new JTableHeader(mTable.getColumnModel()) //anonyme Ableitung von JTableHeader
{
public String getToolTipText()
{
return "Click to sort! (ToolTip aus new JTableHeader)";
}
public String getToolTipText(MouseEvent e)
{
System.out.println("getToolTipText(MouseEvent)");
int ix = mTable.getColumnModel().getColumnIndexAtX(e.getPoint().x);
int modelIx = mTable.getColumnModel().getColumn(ix).getModelIndex();
return mColumnNames[modelIx];
}
}
);
System.out.println("ToolTip: " + mTable.getTableHeader().getToolTipText());
//hier kommt wunderbar der Tooltip: "Click to sort! (ToolTip aus new JTableHeader)"
Also scheint das setTableHeader() zu funktioneren
Aber wenn ich jetzt mit der Maus über den TableHeader gehe, kommt der andere Tooltip: Click to sort! (Tooltip per getTableHeader())
Was mache ich falsch?
Ich hätte gerne den jeweiligen Spalten-Namen als Tooltip, weil viele Spalten, die in den Daten nur wenige Zeichen haben, zu schmal sind für die Anzeige des vollständigen Namens.
TIA,
cu,
Robert