Java: Überprüfen, ob ein JTextField leer ist?

3 Antworten

So wie ich das sehe, ist die Reihenfolge falsch, in der du das Programm geschrieben hast, bzw. nicht falsch, sondern fehlerhaft.

Das Problem ist, dass du einen String initialisierst, der bei einer leeren Angabe auch leer ist. Wenn dieser leere String in einen Integer gecastet werden soll, dann kommt dabei eine Fehlermeldung, weil man ja nicht etwas leeres umwandeln kann.

Die Lösung ist also zum Beispiel:

int a = 0;
String texta = textfielda.getText(); 


if(textfielda.getText().length() == 0)
{
  a = 1;
}
else
{
  int a = Integer.parseInt(texta);
}
System.out.println(a);
    

Eventuell könntest du noch eine Überprüfung hinzufügen, ob überhaupt eine Zahl eingegeben wurde, schließlich kann ein String auch aus Buchstaben bestehen, die ebenfalls nicht gecastet werden können :D

Aber natürlich in der Else Schleife nicht nochmal a initialisieren :D

0
@Louisboy456

else wird immer höchstens einmal ausgeführt, ist daher keine Schleife.

0
@regex9

Ich meine natürlich Anweisung. Sry hatte das schnell am Handy geschrieben.

0

Es wäre hilfreich zu wissen, welche Fehlermeldung du bekommst ;)

Das ist offensichtlich, wenn man sich den Code anschaut :D

Die Fehlermeldung ist " java.lang.NumberFormatException"

0

Ganz einfach :

if(textfielda.getText().isEmpty()){
// TextField leer
}else{
// TextField nicht leer
}

Diese Überprüfung solltest du bspw. innerhalb eines ActionListeners für z.B. einen Button einfügen.

In Android-Java geht es so :

if(TextUtils.isEmpty(textfielda)){
// TextField leer
}else{
// TextField nicht leer
}
Woher ich das weiß:Hobby

Was möchtest Du wissen?