# jTextField - Auslesen, in Variablen speichern, eingeben...



## PhilNET (25. Sep 2014)

Hallo,

ich habe während meiner Ausbildung zum ITA nur mit Visual Basic bzw. C# progammieren müssen und habe jetzt Probleme mit Java, was ich für meine Ausbildung zum Fachinformatiker nun in der Schule brauche.
Ich habe schon gegooglet und mir einige Tutorials angeschaut, aber ich finde nicht das was ich brauche.

Ich benutze NetBeans und habe mir mit dem eingebauten GUI-Designer ein jTextField und einen Button in das Fenster gezogen.
Beim Klick auf den Button soll von der Zahl im Textfeld z.B. 1 abgezogen werden.

In Visual Basic würde ich das in etwa so machen:


```
Dim Zahl As Integer

Zahl = 10
Textfeld1.Text = Zahl1

[U]Beim Klick auf den Button:[/U]

Zahl = Zahl - 1
Textfeld1.Text = Zahl1
```

In Java erscheint mir alles so unlogisch, ich bin einfach an VB gewöhnt :rtfm:.


----------



## Joose (25. Sep 2014)

Danke für die Information.

Und deine Frage ist?


----------



## PhilNET (25. Sep 2014)

Joose hat gesagt.:


> Und deine Frage ist?


Sorry, dachte das wäre offensichtlich. Meine Frage ist, wie muss mein VB-Code in Java aussehen? Wie kann ich die jTextFields ansteuern, also auslesen und den Wert ändern?


----------



## Joose (25. Sep 2014)

PhilNET hat gesagt.:


> Sorry, dachte das wäre offensichtlich.



Nein! :noe:



In Java (wie auch C#) werden Objekte über einen Bezeichner angesprochen. Von einem angesprochenen Objekt kann man dann entsprechende Methoden aufrufen.
Für dein Beispiel wäre das: "Textfeld1.setText(...)" bzw. "Textfeld1.getText()" (Achtung in Java werden lokale Variablen, Attribute usw. in lowerCamelCase geschrieben)

Auf eine Handlung (Action) der GUI kann man mittels ActionListener reagieren. Nur noch verknüpfen und fertig


----------



## SuperJavaMan (25. Sep 2014)

String str = nameDesTextfeldes.getText();
Und wenn du in integer umwandeln willst
Int zahl = Integer.parseInt(nameDesTextfeldes.getText());


----------



## PhilNET (25. Sep 2014)

```
int zahl = Integer.parseInt(jTextField1.getText());        
zahl = zahl - 1;
[COLOR="#A9A9A9"]//zahl in String zahlstr umwandeln[/COLOR]
[COLOR="#FF0000"]jTextField1.setText(zahlstr);[/COLOR]
```

Danke, das hilft mir schon mal alles weiter.
Wie kann ich den berechneten Wert wieder in einen String umwandeln, 
damit das Textfeld ihn anzeigen kann?

EDIT: Schon hinbekommen!

*String zahlstr = String.valueOf(zahl);*


----------



## qdoi123 (26. Sep 2014)

Ich würde noch einen try-catch Block einbinden um einen Programmabsturz durch eine ungültige Eingabe zu verhindern. Man kann ja keine buchstaben auf ein int parsen


----------



## Ice (27. Sep 2014)

PhilNET hat gesagt.:


> ```
> int zahl = Integer.parseInt(jTextField1.getText());
> zahl = zahl - 1;
> [COLOR="#A9A9A9"]//zahl in String zahlstr umwandeln[/COLOR]
> ...



Damit dein Programm auf den Buttonklick reagiert brauchst du einen EventListener,
in diesem Fall einen ActionEventListener.

Einfach das Interface "ActionListener" in die Klasse implementieren, das Interface zwingt dich dann eine Methode zu überschreiben, die ausgeführt wird sobald der Button geklickt wird, bzw. ein Event abgefeuert wird (in diesem Fall würdest du deine Methode aufrufen, die den Wert vermindert.).
Anschließend addest du den ActionEventListener zum JButton.  
Bsp: button.addActionEventListener(this);


----------

