if(tfd_zahl.getText("")){lbl_ziel.setText("Gib bitte eine Zahl ein.");return;}
dann geht er doch bestimmt davon aus, dass ich meine, dass er 'Gib eine Zahl ein' ausgeben soll, wenn irgendetwas in das Textfeld eingegeben wird, oder? Wie stelle ich es aber an, dass er mir das Label ausgibt, wenn ich nichts im Textfeld stehen habe?
Wenn nichts im Textfeld steht steht da ja auch kein Wert mit dem Datentyp Int, sehe ich doch richtig oder? Wie kann ich also das so vereinbaren, dass er Zahlen vom Typ Int einnimmt und die Zeichenkette leer?
In der Klammer nach if muss eine Bedingung oder ein boolscher Wert drin stehen. Wenn der wahr (true) ist, dann wird der nachfolgende Code ausgeführt, wenn nicht dann nicht.
Zum Beispiel so:
Java:
if(tfd_zahl.getText().equals(""))
lbl_ziel.setText("Gib bitte eine Zahl ein.");
Wenn nichts im Textfeld steht steht da ja auch kein Wert mit dem Datentyp Int, sehe ich doch richtig oder? Wie kann ich also das so vereinbaren, dass er Zahlen vom Typ Int einnimmt und die Zeichenkette leer?
Vielleicht möchtest du ja über das Textfeld eine Zahl einlesen. Du bekommst über getText() einen String zurückgeliefert, den müsstest du dann noch in einen int-Wert umwandeln.
Ich habe mir eine Zahl einlesen lassen. Wenn das Textfeld in dem die Zahl kommt jedoch leer ist, dann soll er ausgeben 'Bitte eine Zahl eingeben'.
Die Zahlen habe ich jedoch als Int deklariert, sonst kann ich mit denen ja nicht rechnen. Die leere Zeichenkette hingegen ist ja ein String. Wie kann ich beides deklarieren?
Das macht der von mir oben geschriebene Code. Es wird in der Klammer überprüft, ob das Textfeld leer ist. Evtl. könnte man das noch mit trim() bearbeiten, so dass eventuelle Leerzeichen vorne und hinten entfernt werden.
Die Zahlen habe ich jedoch als Int deklariert, sonst kann ich mit denen ja nicht rechnen. Die leere Zeichenkette hingegen ist ja ein String. Wie kann ich beides deklarieren?
Ja, man könnte auch einen DocumentFilter mit einem Regex an das Textfeld hängen, damit dort nur Zahlen eingegeben werden können, damit fallen schonmal falsche Zeicheneingaben weg. Ich weiss nur nicht, ob das für "Erste Schritte" nicht gleich ein bisschen zu viel ist. Aber umgewandelt werden muss der String aus dem Textfeld in ein int sowieso noch, wenn damit weiter gerechnet werden soll.
Also ich versuche es noch mit einfachen Mitteln zu versuchen, da meine Kenntnisse noch nicht sehr ausgereift sind.
Ich wollte das Ganze so verwenden, dass eine 0 im Textfeld gewertet wird, wenn man nichts hineinschreibt.
Die sehr einfache Loesung: In jedes Textfeld einfach von vornherein eine 0 schreiben.
Wie gesagt, die Methode getText() des Textfeldes liefert dir einen String zurück, auch wenn im Textfeld "0" steht. Überprüfen musst du Strings mit equals() und nicht mit ==.