0
votes

Comment vérifier si tous les champs de texte et les boutons radio sont sélectionnés?

Si et uniquement si toutes les files de texte remplies et les radiobuttons sont sélectionnées, la partie d'autre doit exécuter. sinon alerte devrait contempler. Mais mon code ne fonctionne pas comme prévu.

Après avoir entré toutes les valeurs, le message d'alerte jusqu'à ce que vous puissiez voir dans l'image. Cliquez sur l'image ci-dessous pour ouvrir l'image de sortie. S'il vous plaît aide.

échantillon.fxml xxx

et contrôleur.java xxx

Après avoir entré toutes les valeurs, le message d'alerte jusqu'à la saut. Merci d'avance.


0 commentaires

3 Réponses :


0
votes

Je crois que le conditionnel que vous avez dans la fonction isTrue () n'est pas ce que vous voulez que ce soit. Vous voulez probablement dire quelque chose comme: si (valeur1.getext (). Couper (). ISPTY () | Value2.getext (). Couper (). ISPTY () ...) < / p>

Aussi la condition date.getvalue ()! = null (FALSE quand vide) a la parité opposée à toutes les autres conditions (elles sont vraies lorsqu'elles sont vides).


3 commentaires

Cela fonctionne lorsque j'entraîne toutes les valeurs. Mais, quand il me manque une valeur, il lance l'erreur. Exception dans le thread "thread d'application JavaFX" Java.lang.numberFormatxception: pour la chaîne d'entrée: "" à java.base / java.lang.numberformatException.forinxception (num berformatexception.j AVA: 68)


Pouvez-vous s'il vous plaît dites-moi est que cette condition est correcte ou non pour les boutons radio. "togglegroup.getselectedtoggle (). Issé () && togglegroup2.getselectedtoggle (). Issé ()"


Non, je pense que vous devriez vérifier comme suit: togglegroup.getselectedtoggle ()! = Null



0
votes

Dans votre instruction IF, je crois qu'une meilleure solution pourrait être d'utiliser Textfield.length () == 0 et de vous débarrasser de la couverture ! pour éviter toute confusion en lecture le code.


0 commentaires

0
votes

Vous entrez dans le si code>, sinon toutes les conditions sont true code>. Par exemple. Si au moins l'un des textfield code> s est non vide l'expression à l'intérieur du () code> s est false code> résultant à l'état d'évaluation de la condition d'évaluation du code > vrai code>. Vous devez supprimer la négation et remplacer l'ARD ( && code>) avec ORS || code>.

Je recommanderais de rendre ce code moins répétitif. Si vous ajoutez ces éléments à une collection ou à une matrice, vous pouvez simplement itérer sur eux: P>

private List<TextField> textInputs;
private List<ToggleGroup> toggleGroups;

@Override
public void initialize(URL url, ResourceBundle resourceBundle) {
    ...
    textInputs = Arrays.asList(value1, value2, value3, mul1, mul2, mul3, advance, coolie, market, name);

    // after initializing the ToggleGroups
    toggleGroups = Arrays.asList(toggleGroup, toggleGroup2);
}

...

public boolean isTrue() { // choose a better name for this
    boolean valid = (date.getValue() != null);

    if (valid) {
        for (TextField tf : textInputs) {
            if (tf.getText().trim().isEmpty()) {
                valid = false;
                break;
            }
        }
        if (valid) {
            for (ToggleGroup tg : toggleGroups) {
                if (tg.getSelectedToggle() == null) {
                    valid = false;
                    break;
                }
            }
        }
    }
    if (!valid) {
        // show alert here...
    }
    return valid;
}


4 commentaires

Merci pour votre réponse. Le "if (tg.getselectedtoggle () == null)" "La partie ne fonctionne pas correctement. Aider!


Lorsque je ne sélectionne aucun des erreurs de lancement du programme Radiobutton. "Exception dans le fil" JavaFX Application thread "Java.Lang.NullPointereException à Sample.Controller.istrue (contrôleur.java:119)".


Et quand je sélectionne les deux radiobutton, ce temps jetant également la même erreur. Aider!


@shaikaslam Désolé, je n'ai pas réalisé que vous créez le togglegroup s dans la méthode intialisze . Bien sûr, vous devez déplacer l'initialisation de la liste après l'initialisation de ces champs. Sinon null est placé dans la liste qui aboutit au NPE que vous avez mentionné ...