Wie Sie eine Schaltfläche angezeigt worden angeklickt oder ausgewählt? (JavaFX2)
Wenn der Benutzer eine Taste drückt in meinem JavaFX2.2 UI, ein dunkelblauer Heiligenschein, scheint zu zeigen, dass es geklickt wurde. Im Laufe der Ereignisse, mein Programm kann wollen, um 'deaktivieren' es zu zeigen, dass es nicht mehr aktiviert ist.
Erwartete ich ein button.setSelected(false);
ich erinnere mich, Swing verwendet, um dieses, aber gibt es nicht so einen Aufruf in JavaFx.
Diese Artikel erläutert, Schlagschatten, aber ich möchte einfach die gleiche Darstellung verwendet, wenn auf eine Schaltfläche geklickt wird, die nicht wirklich einen Schatten. setEffect(new DropShadow())
Mit setStyle()
ist ok, aber welche Werte verwenden?
Du musst angemeldet sein, um einen Kommentar abzugeben.
Ich denke, für deine Beschreibung, dass Sie tatsächlich wollen, dass eine ToggleButton eher als ein standard -Button.
Gibt es eine schöne Oracle tutorial auf ToggleButtons.
Adressierung von Elementen aus der Frage
Den riesigen blauen halo ist eigentlich ein Fokus-ring, der anzeigt, dass ein Steuerelement den Fokus hat.
Zu den Fokus-Steuerung können Sie aufrufen, die requestFocus Methode.
Entfernen der Fokus von einem Steuerelement, können Sie rufen Sie requestFocus auf ein anderes Steuerelement, um den Fokus auf das Steuerelement, statt.
Haben eine Taste für das Umschalten zwischen ausgewählten und nicht ausgewählten Zustand, verwenden Sie eine ToggleButton. Ein
ToggleButton
hat eine setSelected Methode.css-style-Werte für die drop-Schatten-Effekte sind definiert in der JavaFX CSS Reference Guide.
Ist es optisch gleichwertig zu definieren, die drop-Schatten-Effekt im code über
setEffect
oder per css mitsetStyle
oder die Anwendung eines style-Klasse aus einem stylesheet. Die drei Ansätze, die ich würde nie empfehlen, diesetStyle
Ansatz, aber nur die css aus dem stylesheet bzw. dersetEffect
von code-Ansatz.Verwandte
Hinweis: es gibt eine zusätzliche Eigenschaft - bewaffnet:
Einen button in einen bewaffneten Staat hat ein etwas anderes Aussehen als eine, die nicht in einem bewaffneten Staat. Die meisten Programme, die Sie nie brauchen, um die Interaktion mit den "armed" Zustand der Tasten.
Beispiel für das styling der ausgewählte Zustand
Den standard-Weg zu unterscheiden, eine ausgewählte ToggleButton-von einer, die nicht Ausgewählt verdunkeln es, um ihm eine Tiefe Stil-Effekt und machen es erscheinen weiter entfernt, wenn es geschoben wurde. Hier ist die standard -toggle-Buttons-css für JavaFX 2.2:
Können Sie dieses Standardverhalten außer Kraft setzen, indem Sie definieren Sie Ihre eigenen stylesheet, dass bietet eine Alternative definition für den ausgewählten Zustand. Im folgenden Beispiel wird sichergestellt, dass die ausgewählten Zustand display ist viel subtiler als der standard, nur dass die ausgewählten Zustand Farbe nur einen kleinen Bruchteil eher als eine Menge.
Deaktiviert
Ausgewählt
Zugehörigen css:
Quelldatei:
String activeButtonStyle = "-fx-background-color:PaleTurquoise;"; b.setStyle(activeButtonStyle); b.requestFocus();
-fx-base: paleturquoise;
statt-fx-background-color: paleturquoise;
Aus einem css-stylesheet auch dieser Befehl arbeitet. Es gibt keine Notwendigkeit für einen toggle-button. Sie drücken Sie eine andere Schaltfläche den Fokus ändert zum neuen.