Aufrufen einer bestimmten Scene mit if-Bedingung

wolfin96

Mitglied
Hallo miteinander! Ich möchte in meinem Programm je nachdem, ob die Bedingung erfüllt ist oder nicht jeweils unterschiedliche Scenen aufrufen. Ich habe das aktuell so geschrieben:
Java:
    public void changeScreen(ActionEvent event) throws Exception {
        
        //maxGewicht(maxGewichtT) ruft eine Methode auf, die etwas was in ein TextField
        //eingegeben wurde in ein double umwandelt
        if(maxGewicht(maxGewichtT) > 0) {
        
        Parent root = FXMLLoader.load(getClass().getResource("Hauptfenster.fxml"));
        
        Scene scene = new Scene(root);
        
        Stage window = (Stage)((Node)event.getSource()).getScene().getWindow();
        
        window.setScene(scene);
        window.show();
        } else {
            //kommt noch
        }
      
    private double maxGewicht(TextField gewicht) {
        double maxGewichtD = Double.parseDouble(maxGewichtT.toString());
        return maxGewichtD;
    }
    }

Liegt das Problem generell daran, dass man das nicht mit if-Bedingungen lösen kann oder an der Bedingung selbst oder wird der Input aus dem TextField nicht richtig umgewandelt?
In der unteren Methode wird der Input aus dem TextField in ein double umgewandelt. Diese wird in der if-Bedingung aufgerufen.
Danke schon mal für eure Hilfe!
 
Ein Textfiel liest man mit der Methode get.Text(); aus und man bekommt einen String;
Ist denn an der Stelle deines Programms das Feld gefüllt und kannst du sicher sein, dass der String in ein Double gewandelt werden kann?
(Fließkommazahlen werden mit einem Punkt geschriebe (z.B. 12.58)
Java:
String textAusTextField = textField.getText();
 
Danke, getText() hat das Problem erstmal behoben. Gibt es denn irgendeinen Weg, außer es hinzuschreiben, um sicherzustellen, dass nur Double Werte in den String übernommen werden bzw. bei falscher Eingabe das , in einen . umgewandelt wird?
 
Du kannst in einem Key-EventHandler deine Abfrage permanent überprüfen und korrigieren. Dafür gibt es einiges an Methoden der StringKlasse.
Z.B. könnte man das Komma in einen Punkt ändern, Buschstaben ignorieren, oder den Wert begrenzen, ect.
 

Zurück
Oben