# int hintereinander schreiben



## xxxcrashxxx (13. Mai 2011)

Hey,

ich versuche gerade 2 int zu verbinden und in einem zusammengerechnet auszugeben ... Problem ist nur da ich zwei Integer werden die zusammengerechnet, ich will sie aber hintereinander schreiben.

```
jNumberField1.setText(x + y);
```
hat jemand ne idee wie das bspw. ohne das + geht??


----------



## L-ectron-X (13. Mai 2011)

Hintereinander geht das so:

```
numberField.setText(x+" + "+y+" = "+(x+y));
```
Stringverkettung.


----------



## xxxcrashxxx (13. Mai 2011)

hi erstmal danke für deine Antwort

aber ich habe gerade einen Fehler in meine fragestellung eingebaut *schäm*

```
jNumberField1.setInt(x+y);
```
so sollte das eigentlich aussehen...
 ich brauche auch ein Nummernfeld um es im nachhinein wieder asuzulesen...


----------



## L-ectron-X (13. Mai 2011)

Nicht unbedingt. Du kannst die Eingabe in einem JTextField (String) in einen int umwandeln, bspw. um damit zu rechnen. Um die beiden Zahlen zu erhalten kannst du den String splitten.


----------



## xxxcrashxxx (13. Mai 2011)

danke ersmal,
ich probier das erstmal aus und melde mich dann^^


----------



## MarderFahrer (13. Mai 2011)

xxxcrashxxx hat gesagt.:


> Hey,
> 
> ich versuche gerade 2 int zu verbinden und in einem zusammengerechnet auszugeben ... Problem ist nur [...] Integer werden die zusammengerechnet, ich will sie aber hintereinander schreiben.



Ich verstehe nicht ganz, was genau du jetzt machen möchtest. Im ersten Teil sagst du, du willst die Int's zusammengerechnet ausgeben und im hinteren Teil merkst du an, dass sie zusammengerechnet werden und du sie aber hintereinander schreiben willst.

Nehmen wir mal ein Beispiel:  
x=5
y=3

Was genau soll jetzt auf das Textfeld? "8" oder "5+3" oder "53"?


----------



## xxxcrashxxx (13. Mai 2011)

Hi MarderFahrer,

Sry für die verwirrung...

also ich möcht in einem jNumberField, deinem bsp. nach die 53 ausgeben.


x=5
y=3

jNumberField.setInt(x+y);
Ausgabe: 53

vielen Dank schonmal


----------



## Asgar13 (13. Mai 2011)

L-ectron-X, hat eigentlich schon die Antwort gegeben


```
jNumberField1.setText(""+ x + "" + y);
String zusammen=jNumberField1.getText();
int neueZahl = Interger.parseInt(zusammen);
```

x=5
y=3

Feld: 53
String: 53
Integer: 53


----------



## xxxcrashxxx (13. Mai 2011)

ich hab jetzt was was in etwa so funktioniert wie ich es mir vorgestellt habe 


```
public void jButton1_ActionPerformed(ActionEvent evt) {
    zahl1 = jNumberField1.getInt();
    zahl2 = String.valueOf(zahl1);
    zahl4 = jTextField1.getText();
    zahl3 = Integer.valueOf(zahl4);
    
    if(zahl3 == 0){
    jTextField1.setText(zahl2);
    }else{
    jTextField1.setText(zahl4 + zahl2);
    }
  }
```


----------



## Crian (13. Mai 2011)

Bitte beachte doch den dicken, roten Hinweis 


```
Java™ Quelltext ist bitte in [[b][/b]JAVA]-Tags zu schreiben: [[b][/b]JAVA]hier Java Code einfügen[[b][/b]/JAVA]
```


----------



## Noctarius (13. Mai 2011)

Bitte nutze die Java-Tags! Die sind nicht umsonst DICK und ROT geschrieben


----------



## Andi_CH (13. Mai 2011)

```
int x = 5;
		int y = 3;
		System.out.print(x);
		System.out.println(y);
		System.out.println(x+""+y);
		System.out.println(Integer.toString(x) + Integer.toString(y));
		Integer xx = 5;
		Integer yy = 3;
		System.out.println(xx.toString()+yy.toString());
```
u.s.w.


----------



## Gastredner (13. Mai 2011)

Ich würde das etwas anders formulieren:

```
public void jButton1_ActionPerformed(ActionEvent evt) {
	int zahl1 = jNumberField1.getInt();
	int zahl2 = Integer.parseInt(jTextField1.getText());
	if(zahl2 == 0) {
		jTextField1.setText("" + zahl1);
	} else {
		jTextField1.setText("" + zahl1 + zahl2);
	}
}
```
Ist einfacher zu verstehen. Zudem Sollten zahl1 und zahl2 (bzw. zahl1-4) als lokale Variablen deklariert werden statt als Klassenvariablen (oder hast du die Deklaration einfach nur vergessen?).
Ich würde dir auch empfehlen, den Elementen sinnvollere Namen zu geben - unter einer Variable wie [c]tfCombinedNumber[/c] könnte ich mit spontan mehr vorstellen als unter [c]jTextField1[/c].


----------



## Crian (13. Mai 2011)

Bei deinem Code



xxxcrashxxx hat gesagt.:


> ```
> public void jButton1_ActionPerformed(ActionEvent evt) {
> zahl1 = jNumberField1.getInt();
> zahl2 = String.valueOf(zahl1);
> ...



stelle ich mir ein paar Fragen.

1) diese komischen zahlX-Variablen werden nicht deklariert. Sind das "Felder" (falls das die richtige Bezeichnung für Variablen der Klasse ist)? Hilfreicher wäre es, diese wohl in der Methode zu deklarieren. Dann müsste man nicht raten, was davon 
	
	
	
	





```
String
```
, 
	
	
	
	





```
int
```
 oder 
	
	
	
	





```
Integer
```
 sein mag.

2) Einrückungen helfen, besonders einem selbst.


```
if (zahl3 == 0) {
        jTextField1.setText(zahl2);
    }
    else {
        jTextField1.setText(zahl4 + zahl2);
    }
```

3) Variablen, und auch GUI-Elemente, sollte man irgendwie so benennen, dass man sie hinterher gut wiedererkennt. 
	
	
	
	





```
jNumberField1
```
 und 
	
	
	
	





```
jTextfield1
```
 sind da keine guten Beispiele. Auch wenn das vermutlich nur Code zum ausprobieren ist.

Ich kann nur dazu raten, Variablen so lange besser zu benennen, bis man zufrieden ist. Mit Refactoringtools der IDEs ist das eine recht einfache Sache.


4) Code sollte so wenig missverständlich wie möglich sein. Wenn ich nur die Zeile 


```
jTextField1.setText(zahl4 + zahl2);
```

sehe, dann gehe ich davon aus, dass hier zwei Zahlen addiert werden. Das liegt natürlich zum Teil auch an dem als Verkettungsoperator in Java etwas unglücklich gewähltem [c]+[/c], aber trotzdem kann man versuchen, das ganze zu verdeutlichen. Vielleicht so?


```
public void jButton1_ActionPerformed(ActionEvent evt) {
    Integer zahl1 = jNumberField1.getInt();
    String zahl1AsString = String.valueOf(zahl1);
    String zahl2AsString = jTextField1.getText();
    Integer zahl2 = Integer.valueOf(zahl2);
    
    if (zahl2 == 0) {
        jTextField1.setText(zahl1AsString);
    }
    else {
        jTextField1.setText(zahl2AsString + zahl1AsString);
    }
  }
```

Richtig glücklich bin ich damit auch noch nicht. Aber vielleicht hat man den Code damit etwas ordentlicher hinterlassen (so ich keinen Fehler eingebaut habe).

(Denn eigentlich sollten Typinformationen nicht unbedingt in den Variablennamen landen, wie das hier mit "AsString" der Fall ist. Es geht also sicher noch schöner.)

Edit: Nun hab ich mir damit zu viel Zeit gelassen. *schmunzelt*


----------

