Hallo,
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?
Gute Frage. Der obenstehende Code funktioniert bei mir. Es wird nie
"Click to sort! (ToolTip aus new JTableHeader)", sondern immer nur
der Spaltenname ausgegeben.
Bist du sicher, daß du (oder irgend eine Swing-Klasse) den TableHeader
nicht nochmal überschreibt, nachdem du deine eigene TableHeader-
Implementierung zugewiesen hast?
Gruß
Slyh