JavaFX Toggle_Button_Disable

Adriano10

Bekanntes Mitglied
Java:
   private void toggleButtonDisable(Button button, boolean disable) {
        button.disableProperty().bind(new SimpleBooleanProperty(disable));
    }

    @FXML
    private void onZoomIn() {
        incZoom();
        toggleButtonDisable(this.zoomIn, this.isDisableZoomIn());
        toggleButtonDisable(this.zoomOut, this.isDisableZoomOut());
    }

    @FXML
    private void omZoomOut() {
        this.decZoom();

        toggleButtonDisable(this.zoomOut, this.isDisableZoomOut());
        toggleButtonDisable(this.zoomIn, this.isDisableZoomIn());
    }

Einen schönen Tag zusammen,

Also ich habe eine Methode toggleButtonDisable geschrieben, die die Buttons deaktiviert und aktiviert.

Also wenn Max-Size erreicht ist, wird ZoomIn deaktviert. Sobald man dann ZoomOut anklickt, wird ZoomIn aktiviert.. Das gleiche passiert auch bei ZoomOut.

Das funktioniert ganz gut, aber finde ich bisschen unschön, dass diese Methode doppelt aufgerufen werden muss.

Kann jemand mir paar Tipps geben, sodass diese Methode toggleButtonDisable nur einmal aufgerufen wird?

Vielen Dank im Voraus
 

KonradN

Super-Moderator
Mitarbeiter
Also Dein Code würde ich jetzt als relativ dubios bezeichnen.

Das mit den Properties dient dem binding. Und dann hast Du eine Property und die wird gesetzt. Immer eine neue SimpleBooleanProperty zu erzeugen, wenn Du etwas umsetzen willst, ist absolut unnötig!

Wenn Du den Wert nur setzen willst, dann nutz einfach direkt ein set, also etwas wie:
button.disableProperty().set(disable)

Wenn Du zwei Properties hast, die voneinander abhängen, dann kannst Du da entsprechende Bindings aufstellen. Also etwas wie:
zoomOut.disableProperty().bind(zoomIn.disableProperty().not());

Damit würde es ausreichen, nur noch zoomIn.disableProperty().set(...) aufzurufen und zoomOut verändert sich automatisch.

Du kannst dazu auch eine eigene SimpleBooleanProperty nutzen. Dann hättest Du als einmalige Initialisierung etwas wie:
Java:
// Instanzvariable:
SimpleBooleanProperty zoomProperty = new SimpleBooleanProperty(true);

// Initialisierung:
zoomIn.disableProperty().bind(zoomProperty);
zoomOut.disableProperty().bind(zoomProperty.not());

// Umsetzen Methode
public void setZoomDisabled(boolean disablerd) {
    zoomProperty.set(disabled);
}

zoomProperty wäre ggf. besser zoomDisabledProperty oder so ...

Das alles so im Forum geschrieben - also evtl. habe ich mich vertippt oder irgendwo vertan ....
 

Adriano10

Bekanntes Mitglied
Also Dein Code würde ich jetzt als relativ dubios bezeichnen.

Das mit den Properties dient dem binding. Und dann hast Du eine Property und die wird gesetzt. Immer eine neue SimpleBooleanProperty zu erzeugen, wenn Du etwas umsetzen willst, ist absolut unnötig!

Wenn Du den Wert nur setzen willst, dann nutz einfach direkt ein set, also etwas wie:
button.disableProperty().set(disable)

Wenn Du zwei Properties hast, die voneinander abhängen, dann kannst Du da entsprechende Bindings aufstellen. Also etwas wie:
zoomOut.disableProperty().bind(zoomIn.disableProperty().not());

Damit würde es ausreichen, nur noch zoomIn.disableProperty().set(...) aufzurufen und zoomOut verändert sich automatisch.

Du kannst dazu auch eine eigene SimpleBooleanProperty nutzen. Dann hättest Du als einmalige Initialisierung etwas wie:
Java:
// Instanzvariable:
SimpleBooleanProperty zoomProperty = new SimpleBooleanProperty(true);

// Initialisierung:
zoomIn.disableProperty().bind(zoomProperty);
zoomOut.disableProperty().bind(zoomProperty.not());

// Umsetzen Methode
public void setZoomDisabled(boolean disablerd) {
    zoomProperty.set(disabled);
}

zoomProperty wäre ggf. besser zoomDisabledProperty oder so ...

Das alles so im Forum geschrieben - also evtl. habe ich mich vertippt oder irgendwo vertan ....
Vielen Dank,die werde ich gern ausprobieren und dann einbauen.. Das ist sehr hilfreich,vielen Dank
 
Ähnliche Java Themen
  Titel Forum Antworten Datum
Juelin Netbeans mit JavaFX, FXML und Scenebuilder Java Basics - Anfänger-Themen 11
Juelin javaFX mit Elementen Java Basics - Anfänger-Themen 6
Juelin Netbeans und javafx Java Basics - Anfänger-Themen 6
M Wo den Ordner javafx-sdk-21.0.2 unter Linux ablegen? Java Basics - Anfänger-Themen 5
A Kapazität JavaFX TextField Java Basics - Anfänger-Themen 4
L JavaFX - grundlegende Verständnisprobleme Java Basics - Anfänger-Themen 1
S JavaFX Java Basics - Anfänger-Themen 1
A JavaFX-Anwendung läuft nicht mit Selenium WebDriver Java Basics - Anfänger-Themen 0
ac83 JavaFX - Kompilierungsproblem Java Basics - Anfänger-Themen 1
R Intellij javafx --> jar Java Basics - Anfänger-Themen 11
O Compiler-Fehler JavaFX fmxl LoadExeption Java Basics - Anfänger-Themen 4
M Javafx Timeline Java Basics - Anfänger-Themen 2
sserio Wieso funktioniert mein TableView nicht /JavaFX. Java Basics - Anfänger-Themen 4
A JavaFX-Filechooser Java Basics - Anfänger-Themen 5
H JavaFX Hintergrundfarbe ändern, warten, Hintergrundfarbe wieder ändern Java Basics - Anfänger-Themen 34
A JavaFx - SceneBuilder Java Basics - Anfänger-Themen 5
S JavaFX - Objekt an neue Stage übergeben Java Basics - Anfänger-Themen 12
G Javafx Eventhandler zu jedem Node Java Basics - Anfänger-Themen 1
T Elemente aus Array zu TableView JavaFX übertragen Java Basics - Anfänger-Themen 2
T HTMLEditor JavaFX Java Basics - Anfänger-Themen 4
E JavaFX Editor Probleme mit der Zwischenablage Java Basics - Anfänger-Themen 12
E JavaFX Taschenrechner Eingabe im Textfield beschränken Java Basics - Anfänger-Themen 2
D Mit Objekten rechnen, Textfield, JavaFX, Noob Java Basics - Anfänger-Themen 8
P Probleme bei der Installation von JavaFX Java Basics - Anfänger-Themen 3
R Umsetzungsplan JavaFx App Java Basics - Anfänger-Themen 9
M JavaFX- Verschiedene Stages Java Basics - Anfänger-Themen 1
P JavaFx einrichten Java Basics - Anfänger-Themen 6
Torsten.E JavaFX mit Visual Studio Code verwenden Java Basics - Anfänger-Themen 1
P JavaFX: Verständnisproblem bei ComboBox/ChoiceBox etc. Java Basics - Anfänger-Themen 9
T Javafx ListView kann nicht gefüllt werden. Java Basics - Anfänger-Themen 6
D JAVAFX WebVIEW zu JSOUP Java Basics - Anfänger-Themen 3
D Folgende Fehlermeldung bei der Installation von JAVAFX Java Basics - Anfänger-Themen 1
S JavaFX-Arduino Kommunikation mit LCD-Anzeige Java Basics - Anfänger-Themen 0
B java.lang.NullPointerException bei javafx Java Basics - Anfänger-Themen 10
J javafx mediaplayer mit https Java Basics - Anfänger-Themen 3
J JavaFX Label,Button zur Laufzeit Java Basics - Anfänger-Themen 30
D Ausführbare jar/exe aus JAVAFX Projekt erstellen (IntelliJ) Java Basics - Anfänger-Themen 14
O JavaFX XML Versuch Java Basics - Anfänger-Themen 2
O JavaFX Java Basics - Anfänger-Themen 7
M JavaFX-Übung Autospiel Java Basics - Anfänger-Themen 4
M JavaFX: Fenster bleibt weiß Java Basics - Anfänger-Themen 3
L Klassen NFC Reader und JavaFx Problem -> threads? Java Basics - Anfänger-Themen 2
J Aktuelle Zeit in einer JavaFX Anwendung aktualisieren lassen Java Basics - Anfänger-Themen 4
L JavaFx ListView rechts abgeschnitten Java Basics - Anfänger-Themen 0
I Javafx Tabpane Reiter blockieren Java Basics - Anfänger-Themen 1
S JavaFX Beginneraufgabe Java Basics - Anfänger-Themen 1
W JavaFX import Fehler/Zellularautomaten Java Basics - Anfänger-Themen 1
Spencer Reid JavaFX Memory Thread.sleep Java Basics - Anfänger-Themen 1
CptK mit javafx button erstellen Java Basics - Anfänger-Themen 1
U Javafx Array aus Buttons Java Basics - Anfänger-Themen 2
D JavaFX Vererbung Java Basics - Anfänger-Themen 2
E JAvaFX: Verschiedene Panels nach Klick auf Node des TreeView anzeigen Java Basics - Anfänger-Themen 0
K Erste Schritte JavaFX - wie von "externer" Klasse auf Methoden des Controllers zugreifen Java Basics - Anfänger-Themen 2
J JavaFX -> SocketIO -> Thread -> Update Label Java Basics - Anfänger-Themen 13
D JavaFX, Verweis auf Datei im Projekt Java Basics - Anfänger-Themen 0
M JavaFX in Swing-Applikationen einbetten Java Basics - Anfänger-Themen 5
M JavaFX: Problem mit der TableView Java Basics - Anfänger-Themen 0
P JavaFX ohne FXMLLoader Java Basics - Anfänger-Themen 3
K JavaFX UI controls Java Basics - Anfänger-Themen 1
B Farbverlauf erstellen ohne Javafx, AWT usw.? Java Basics - Anfänger-Themen 34
H Best Practice JavaFX TableView mit Zell-Rahmen anstelle von Zeilen-Balken Java Basics - Anfänger-Themen 1
M Ausgabe eines Arrays auf Label (Javafx) Java Basics - Anfänger-Themen 4
K Threads Multithread in JavaFx Java Basics - Anfänger-Themen 11
R Threads in JavaFX Java Basics - Anfänger-Themen 3
N JavaFX - (Controller) - Klasse verkleinern Java Basics - Anfänger-Themen 8
U JavaFX eine Vbox Instanz pro Pane? Java Basics - Anfänger-Themen 2
Spencer Reid JavaDoc zu JavaFx hinzufügen Java Basics - Anfänger-Themen 1
V wie kann man am einfachsten für ein Element der JavaFX die Umrandung aktiwieren ? auch ohne css ? Java Basics - Anfänger-Themen 4
D OOP JavaFX objektorientiert Java Basics - Anfänger-Themen 2
V Interface ich schäme mich das zu fragen, aber ich schaff nicht ein Text zu zentrieren :( [javaFX] Java Basics - Anfänger-Themen 6
P JavaFX - Komponenten skalieren Java Basics - Anfänger-Themen 16
P JavaFX Textfelder geben immer null zurück Java Basics - Anfänger-Themen 8
P JavaFX TextArea.setText Java Basics - Anfänger-Themen 13
F javafx.fxml.LoadException: Root hasn't been set. Java Basics - Anfänger-Themen 0
J JavaFX aus Java-Application heraus starten Java Basics - Anfänger-Themen 7
T Swing, SWT oder JavaFX Java Basics - Anfänger-Themen 8
S [JavaFX 2.1] - Eigene Sprachauswahl? Java Basics - Anfänger-Themen 4
D Javafx XYChart Variable in Schleife erzeugen? Java Basics - Anfänger-Themen 18
E JavaFX und Java auf Kommandozeile compilen Java Basics - Anfänger-Themen 2
J Webanwendung JavaFX Java Basics - Anfänger-Themen 4
Povlsen84 [javafx] Zusammenarbeit mit Tomcat Java Basics - Anfänger-Themen 4
P Autoclicker Toggle Java Basics - Anfänger-Themen 6
A Erste Schritte Scrolllock toggle Java Basics - Anfänger-Themen 3
M GUI - Toggle JRadioButton? Java Basics - Anfänger-Themen 2
S Toggle Button Array zum anzeigen auf GUI Java Basics - Anfänger-Themen 17
L toggle button reagiert nicht mehr nach while-start Java Basics - Anfänger-Themen 8
Maxq Klassen Actionen in Button implementieren Java Basics - Anfänger-Themen 6
B Wie kann ich folgende Klasse/Methode per Button ausführen? Java Basics - Anfänger-Themen 1
JavaBeginner22 Button Text verändern Java Basics - Anfänger-Themen 1
sserio Java Fx, wie erstellt man einen EventHandler, der durch das Drücken eines Button Texte in eine Table view einfügt Java Basics - Anfänger-Themen 17
Schniffi Nur bestimmte Bilder aus einem Array auf Image Button anzeigen lassen Java Basics - Anfänger-Themen 3
M Problem mit Klassenverständnis und Button Java Basics - Anfänger-Themen 8
B Zurück Button erstellen Java Basics - Anfänger-Themen 1
Tom/S Button info Java Basics - Anfänger-Themen 2
I Exception bei Button mit wait() und notifyAll() Java Basics - Anfänger-Themen 3
T JSP, Button-Color change. Java Basics - Anfänger-Themen 1
L hilfe run button funktioniert nicht Java Basics - Anfänger-Themen 13
S Erste Schritte Button einen Wert zuweisen & diesen ausgeben Java Basics - Anfänger-Themen 2
S Counter Label Button Java Basics - Anfänger-Themen 4
J Button über Pfeiltasten bewegen Java Basics - Anfänger-Themen 8

Ähnliche Java Themen

Neue Themen


Oben