So fügen Sie eine Tooltip zu einer TableView-Header-Zelle in JavaFX 8 hinzu

8

Weiß jemand, wie man einem Spaltenkopf in TableView ?

Es gibt viele Stellen, an denen erklärt wird, wie die QuickInfo zu Datenzellen hinzugefügt wird, aber ich habe keine Möglichkeit gefunden, die QuickInfo zur Kopfzeile hinzuzufügen.

Mit dem Tool ScenicView kann ich sehen, dass die Header Labels in einem TableColumnHeader-Objekt sind, aber es scheint, dass es das ist kein öffentliches Objekt.

Irgendwelche Vorschläge?

    
Roberto 22.04.2014, 16:13
quelle

3 Antworten

15
%Vor%     
James_D 22.04.2014, 16:16
quelle
5

Dies ist eine erweiterte Antwort auf James_D. (Ich habe nicht den Ruf zu kommentieren):

Um das Label mit der Eigenschaft textProperty der Spalte zu verbinden und den ursprünglichen Text einfach auszublenden, wird dadurch der Rest der Tabellenfunktionalität nicht beeinträchtigt:

%Vor%

css:

%Vor%     
Jesper Pedersen 30.07.2015 14:27
quelle
1

Alternativ können Sie das bereits vorhandene Etikett nachschlagen und ihm einen Hinweis geben.

Ich habe versucht, die Lösungen von Jesper und James zu kombinieren. Leider hat das CSS bewirkt, dass alle meine Labels verschwinden , wenn ich mein .fxml -Layout in SceneBuilder ansehe. Und wir können das einfach nicht haben, oder? (okay vielleicht könnte ich das einfach nicht haben).

Damit .lookup() ein Element ist, muss die Tabelle bereits gerendert werden. Um sicherzustellen, dass der Code nach der Wiedergabe der Tabelle ausgeführt wird, müssen Sie den Code einfach in Platform.runlater() einfügen.

%Vor%

Wenn Sie dies für Ihre gesamte Spaltengruppe tun möchten, können Sie sie alle in eine LinkedHashMap einfügen (dies hilft Ihnen organisatorisch, indem Sie Ihre Spalten mit ihren Nachrichten verknüpfen):

%Vor%

... verwenden Sie dann eine for-each-Schleife zum Durchlaufen und geben Sie jeder Spalte einen Tooltip ...

%Vor%     
Brad Turek 13.04.2017 03:45
quelle