Nur bei einem Textfiled Nullpointerexception bei getText()

nieselfriem

Bekanntes Mitglied
Hallo,

in meinem Controller verwende ich zur validierung von textfeldern eine Validierung mit folgender Funktion durch

Java:
package abu.uivalidation;

import javafx.scene.control.Label;
import javafx.scene.control.TextField;

public class TextFieldValidation {
    public static boolean isTextFieldNotEmpty(TextField tf) {
        boolean b = false;
        if(tf.getText().length() != 0 || !tf.getText().isEmpty())
            b = true;
        return b;
    }

    public static boolean isTextFieldNotEmpty(TextField tf, Label lb, String errorMessage){
        boolean b = true;
        String msg = null;
        if(!isTextFieldNotEmpty(tf)) {
            b = false;
            msg = errorMessage;
        }
        lb.setText(msg);
        return b;
    }
}

diese wird wie folgt aufgerufen:

Java:
boolean isNameEmpty = TextFieldValidation.isTextFieldNotEmpty(nameTextField, checkNameLabel, "*");
        boolean isVornameEmpty = TextFieldValidation.isTextFieldNotEmpty(vornameTextField, checkVornameLabel, "*");
        boolean isStrHnrEmpty = TextFieldValidation.isTextFieldNotEmpty(strasseHausnummerTextField, checkStrHNrLabel, "*");
        boolean isPLZEmpty = TextFieldValidation.isTextFieldNotEmpty(plzTextField, checkPLZLabel, "*");
        boolean isOrtEmpty = TextFieldValidation.isTextFieldNotEmpty(ortTextField, checkOrtLabel, "*");
        boolean isEmailEmpty = TextFieldValidation.isTextFieldNotEmpty(emailTextField, checkEmailLabel, "*"); //Nullpointer
        if (isNameEmpty || isVornameEmpty || isStrHnrEmpty || isPLZEmpty || isOrtEmpty || isEmailEmpty) {
            showInputErrorLabel.setVisible(false);
        } else {
            showInputErrorLabel.setVisible(true);
        }

bei allen textfeldern funktioniert es. Nur beim emailTextField kommt es zu einer Nullpointexecption:

Code:
... 107 more
Caused by: java.lang.NullPointerException: Cannot invoke "String.length()" because the return value of "javafx.scene.control.TextField.getText()" is null
    at abu.uivalidation.TextFieldValidation.isTextFieldNotEmpty(TextFieldValidation.java:9)
    at abu.uivalidation.TextFieldValidation.isTextFieldNotEmpty(TextFieldValidation.java:17)
Caused by: java.lang.NullPointerException: Cannot invoke "String.length()" because the return value of "javafx.scene.control.TextField.getText()" is null

    at abu.uioperations.UpdateCustomerDialogController.updateCustomerData(UpdateCustomerDialogController.java:213)
So richtig nachvollziehen kann ich es nicht, da das Textfield in der fxml definiert ist, als Variable definiert ist und alle anderen Textfields keine Nullpointer werfen.

Sollte noch etwas Code benötigt werden einfach bescheid geben. ich wollte nicht gleich den ganzen Beitrag damit vollballern. 😉

VG Georg
 
Ich habe den Fehler gefunden:

in meinem Kontroller wird das Textfield mit daten gefüllt Dabei handelt es sich um ein SQL-Query und wenn keine Daten vorhanden sind, weil in der Tabelle ein NULL steht, wird halt der Variable null zugeordnet und dann steht auch im Textfield nicht "" sondern null.

Ein bisschen Abstand vom Thema und man findet es heraus. 😉

VG Georg
 

Zurück
Oben