Schalten Sie Die Farbe für eine Komponente in JavaFX
Wenn ich eine Instanz einer JavaFX-Objekt, sagen wir ein AnchorPane, wie wechsle ich zwischen den hintergrund/Vordergrund Farbe? Ich habe eine schnelle Google-Suche und es zeigte sich nichts, auch durch die Erforschung seiner Methoden es wurde offensichtlich nichts, wie setColor()
.
Du musst angemeldet sein, um einen Kommentar abzugeben.
Allgemeine Hinweise
Alles, was dauert Farbe als parameter erlaubt Ihnen, eine Farbe, wie Farbe ist abgeleitet von der Farbe.
Gibt es mehrere Möglichkeiten, um Stil-Komponenten, im Allgemeinen, mit css wird oft bevorzugt, da es erlaubt, Sie zu stylen Ihre scene graph deklarativ, getrennt von der Programmlogik. Dies macht es viel einfacher zu ändern und zu aktualisieren Stile, wenn Ihre Anwendung schaltet den Wartungsmodus.
Mit CSS
Einfache css-Stil Anwendung:
In Bezug auf die css-Anwendung, ein stylesheet wird empfohlen, über einen Aufruf von setStyle wie oben. Sehen Sie eine Erklärung der verschiedenen styling-Anwendungen in JavaFX in Antwort auf: In JavaFX, sollte ich den Einsatz von CSS oder setter-Methoden zum ändern von Eigenschaften auf mein UI Knoten?.
Ein Beispiel der Anwendung eines stylesheet:
Und ein stylesheet legt die Hintergrundfarbe für alle AnchorPanes:
Mit dem Java-8-Hintergrund-API
Java 8 führt eine neue API programmgesteuert Hintergründe über die Hintergrund Klasse.
Hinweis, Hintergründe (ob in css definierten oder über die Background-API) sind nur für bestimmte Arten von Knoten (z.B. Regionen, Layouts und Controls).
Einstellen Der "Form" - Attribute
Einen Form definiert einige Eigenschaften, die Sie festlegen können, ändern Sie die Form der Farbe. Häufige Formen sind Kreise, Rechtecke, Pfade und text.
Den Schlaganfall:
Den füllen:
Fill-und stroke-Muster:
Leinwand GraphicsContext
Einer Menge von JavaFX basiert auf einer deklarativen Definitionen in der einen scene graph, fxml und css anstelle von expliziten Imperativ Befehle wie
setColor()
. Ich meine damit die Reihenfolge, in der Sie Befehle, macht nicht viel Unterschied. Wenn Sie möchten, verwenden Sie eine eher traditionelle Ansatz für die Zeichnung, indem das system in einen Modus, in dem alle nachfolgenden Befehle wirken auf einen Kontext, der definiert sich die aktuelle Zeichnung, wie z.B. die Attribute fill und stroke-Stile verwenden eine Leinwand.Im Allgemeinen jedoch, für viele Dinge, die SceneGraph ist besser zu arbeiten, als mit einer Leinwand, wie Sie arbeiten, auf einer höheren Ebene der Abstraktion. Die Leinwand GraphicsContext hat zwar den Vorteil, eine einfache, straight-forward-API-obwohl die alle in einer einzigen Klasse. Es ist auch nützlich für das portieren von code von anderen Systemen, wie dem HTML5-canvas zu JavaFX.