Wie wird eine Schaltfläche angezeigt, auf die geklickt oder ausgewählt wurde? (JavaFX2)

7

Wenn der Benutzer eine Taste in meiner JavaFX2.2-Benutzeroberfläche drückt, erscheint ein dunkelblauer Halo, um anzuzeigen, dass er angeklickt wurde. Während des Ablaufs der Ereignisse möchte mein Programm es möglicherweise deaktivieren, um anzuzeigen, dass es nicht mehr ausgewählt ist.

Ich erwartete ein button.setSelected(false); Ich erinnere mich, dass Swing das hatte, aber JavaFx hat keinen solchen Aufruf. Dieser Artikel behandelt Schlagschatten, aber ich möchte einfach die gleiche Darstellung wie bei einer Schaltfläche verwenden wird geklickt, was nicht wirklich ein Schlagschatten ist. %Code% Die Verwendung von setEffect(new DropShadow()) ist in Ordnung, aber welche Werte zu verwenden?

    
likejiujitsu 04.04.2013, 18:45
quelle

2 Antworten

19

Ich denke für Ihre Beschreibung, dass Sie eigentlich eine ToggleButton anstelle eines standardmäßigen Buttons .

Es gibt ein nettes Oracle-Tutorial zu ToggleButtons .

Elemente aus der Frage adressieren

  

dunkelblauer Halo scheint zu zeigen, dass er angeklickt wurde

Der blaue Halo ist eigentlich ein Fokusring, der anzeigt, dass ein Steuerelement den Fokus hat. Um ein Steuerelement zu fokussieren, können Sie den requestFocus aufrufen Methode.

  

Während des Verlaufs der Ereignisse möchte mein Programm es möglicherweise deaktivieren, um anzuzeigen, dass es nicht mehr ausgewählt ist.

Um den Fokus von einem Steuerelement zu entfernen, können Sie requestFocus auf einem anderen Steuerelement aufrufen, um stattdessen auf dieses Steuerelement zu fokussieren.

  

Ich habe eine Schaltfläche erwartet. setSelected (false);

Um eine Schaltfläche zu verwenden, die zwischen einem ausgewählten und einem nicht ausgewählten Status wechseln kann, verwenden Sie ToggleButton . A ToggleButton hat eine Methode setSelected .

  

setEffect (new DropShadow ()) Verwenden von setStyle () ist ok, aber welche Werte zu verwenden

CSS-Stilwerte für Schlagschatteneffekte sind im JavaFX-CSS definiert Referenzhandbuch .

Es ist visuell äquivalent, den Schlagschatteneffekt im Code über setEffect oder über css mit setStyle zu definieren oder eine Stilklasse aus einem Stylesheet anzuwenden. Von den drei Ansätzen würde ich niemals den setStyle -Ansatz empfehlen, sondern nur die CSS aus dem Stylesheet oder den setEffect from code Ansatz.

Verwandte

Hinweis: Es gibt eine zusätzliche verwandte Eigenschaft - aktiviert :

  

Zeigt an, dass die Schaltfläche "aktiviert" wurde, so dass eine Mausfreigabe dazu führt, dass die Aktion der Schaltfläche aufgerufen wird. Dies ist subtil anders als gedrückt. Drücken zeigt an, dass die Maus auf einem Knoten gedrückt wurde und noch nicht freigegeben wurde. Arm berücksichtigt aber auch, ob sich die Maus tatsächlich über dem Button befindet und gedrückt wird.

Eine Schaltfläche in einem aktivierten Zustand hat ein etwas anderes Aussehen als eine, die nicht in einem aktivierten Zustand ist. Die meisten Programme müssen niemals mit dem aktivierten Zustand der Tasten interagieren.

Beispiel zum Formatieren des ausgewählten Status

Die Standardmethode zum Unterscheiden eines ausgewählten ToggleButton von einem nicht ausgewählten Selector besteht darin, ihn dunkler zu machen, um ihm einen Tiefeneffekt zu verleihen und ihn weiter entfernt erscheinen zu lassen, wenn er gedrückt wurde. Hier ist der Standard Knopf für JavaFX 2.2 umschalten :

%Vor%

Sie können dieses Standardverhalten überschreiben, indem Sie Ihr eigenes Stylesheet definieren , das eine Alternative bietet Definition für den ausgewählten Zustand. Das folgende Beispiel stellt sicher, dass die ausgewählte Statusanzeige viel subtiler als der Standard ist. Die ausgewählte Statusfarbe wird nur um einen kleinen Bruchteil dunkler als um ein Vielfaches dunkler.

Nicht ausgewählt

Ausgewählt

Assoziierte CSS:

%Vor%

Quelldatei:

%Vor%     
jewelsea 04.04.2013, 21:31
quelle
1

Von einem CSS-Stylesheet funktioniert dieser Befehl auch. Eine Umschalttaste ist nicht erforderlich. Wenn Sie eine andere Taste drücken, wechselt der Fokus zur neuen.

%Vor%     
rainer 09.02.2017 15:37
quelle

Tags und Links