Robert: JTable, TableHeader Tooltips

Beitrag lesen

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