So ändern Sie die Header-Komponente in TitledPane in JavaFX

8

Ich kann nirgendwo im Internet eine Antwort finden.

Ich habe eine Anwendung, die zusammenklappbare Panels haben muss, daher ist das Setup von TitledPane und Accordion in Java FX ein natürlicher Kandidat.

In der Anwendung muss ich benutzerdefinierte Header für den Container haben, wenn er minimiert ist. Ich sehe im CSS-Dokument für den TitledPane, dass der Header wirklich eine HBox und eine Vielzahl anderer Komponenten ist.

Ссылка

Ich möchte auf diese Komponente zugreifen und sie durch eine benutzerdefinierte Komponente ersetzen.

Ich habe die setGraphic-Funktion von TitledPane api und setContentDisplay auf GraphicOnly verwendet. mit einer benutzerdefinierten Komponente. Ich kann es jedoch nicht richtig rendern. Ich hatte Probleme mit dem Entfernen des Pfeils und dem Entfernen des durch den Pfeil belegten Platzes.

Sehen Sie den folgenden Link für Screenshots des gewünschten Aussehens und wie es tatsächlich aussieht.

Ссылка

Wie entfernt man den Pfeil und entfernt das Padding?

    
Dan Bucholtz 01.08.2012, 18:36
quelle

3 Antworten

22

TitledPane ist ein Labeled, also können Sie setzen Sie eine Grafik darauf in einem Listener oder einer Bindung an die erweiterte Eigenschaft.

Das Ändern der Hintergrundfarben usw. (einschließlich des Überschreibens der Pseudoklasse "focused") kann über css erreicht werden (siehe Abschnitt TitledPane von caspian.css Stylesheet in jfxrt.jar für Beispiele).

Wenn Sie Code-basierten Zugriff auf Unterkomponenten des TitledPane benötigen, können Sie die lookup Funktion, nachdem der TitledPane einer Szene auf einer Bühne hinzugefügt wurde.

%Vor%

Ich würde empfehlen, die auf graphic / css Stylesheet basierenden Ansätze zu versuchen, bevor Sie eine Suche starten.

Wenn Sie das Labeled nicht benötigen, um Text anzuzeigen, dann stellen Sie es ein nur Grafik .

%Vor%

Hier ist ein Beispielcode, der ein TitledPane mit einer angepassten Kopfzeile neben einem TitledPane ohne angepassten Header anzeigt.

%Vor%

Und etwas CSS, um damit zu gehen:

%Vor%

    
jewelsea 01.08.2012, 20:02
quelle
2

(Die Antwort wurde aus der Frage verschoben)

Dies ist die Antwort:

Um den Pfeil zu entfernen, fügen Sie diese CSS-Deklaration hinzu:

%Vor%

Das obige CSS-Snippet entfernt den Pfeil, aber der Platz für den Pfeil ist noch belegt. Das war wirklich schwierig und ich konnte es nirgends im Internet finden, aber ich habe diese CSS-Anweisung angewendet und die Lücke vom Pfeil entfernt.

%Vor%

Dies ist vielleicht nicht die beste Lösung, aber es ist eine Lösung, die für meine Bedürfnisse funktioniert hat.

    
Michael Mrozek 14.04.2016 06:11
quelle
-1

So entfernen Sie den Pfeil:

%Vor%     
Uvichy 24.07.2014 12:35
quelle

Tags und Links