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. P>
échantillon.fxml p> et contrôleur.java p>
3 Réponses :
Je crois que le conditionnel que vous avez dans la fonction Aussi la condition isTrue () code> 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 () ...) CODE> < / p>
date.getvalue ()! = null code> (FALSE quand vide) a la parité opposée à toutes les autres conditions (elles sont vraies lorsqu'elles sont vides). P>
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 code>
Dans votre instruction IF, je crois qu'une meilleure solution pourrait être d'utiliser Textfield.length () == 0 code> et de vous débarrasser de la couverture
! code> pour éviter toute confusion en lecture le code. p>
Vous entrez dans le 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> 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>.
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;
}
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 code> s dans la méthode code> intialisze code>. Bien sûr, vous devez déplacer l'initialisation de la liste après l'initialisation de ces champs. Sinon
null code> est placé dans la liste qui aboutit au NPE que vous avez mentionné ...