getText und setText

chrisjahl

Erfahrenes Mitglied
hallo leibe leutz,

habe folgendes problem

private void ergebnis_actionPerformed(ActionEvent e)
{

a=feld1.getText();
b=feld2.getText();
c=a+b;

feld3.setText(c);
}

a,b und c habe ich oben als integer deklariert, bei c soll mit a und b gerechnet werden und dieses ergebnis bei feld3 ausgeben werden, leider weis ich nicht wo mein fehler liegt da es nicht funktioniert und die rechnung soll beim anklicken des button passieren

ich hoffe mir kann jemand helfen, ist bestimmt ganz einfach zu beheben das problem, ich stell mich mal wieder dumm an :D

danke im voraus

euer christoph
 
Hallo,

bei solchen Fehlern lasse ich mir immer die Werte, die zur Zeit in den einzelnen Variablen stecken, ausgeben...
Das könnte dann so aussehen:
Code:
private void ergebnis_actionPerformed(ActionEvent e)
{
  System.out.println("1. a: "+a+" b: "+b+" c: "+c);
  
  a=feld1.getText();
  b=feld2.getText();
  c=a+b;
  
  System.out.println("2. a: "+a+" b: "+b+" c: "+c);
  
  feld3.setText(c);
}

auf diese Weise lassen sich schon viele Fehler entdecken!
Ich hoffe, ich habe keine Fehler eingebaut :rolleyes:

Gruß
 
die variablen haben ja noch gar keine wert, die werden ja erst in eintextfeld eingeben und das ausgelesen mit a=feld1.getText();
ich weis echt nicht wo mein fehler ist

Error(139,18): incompatible types; found: java.lang.String, required: int
Error(140,18): incompatible types; found: java.lang.String, required: int
Error(144,9): method setText(int) not found in class javax.swing.JTextField

diese drei sachen schreibt er mir

private void ergebnis_actionPerformed(ActionEvent e)
{


zeile 139 a=feld1.getText();
zeile 140 b=feld2.getText();

zeile 144 c=a+b;

feld3.setText(c);
}

wyatt dein vorschlag ist nicht schlecht aber ich weis ja wo der fehler liegt aber ich weis nicht wie es richtig aussehn muss, ich prog mit dem Jdeveloper 11g
 
Na da haben wir doch den Fehler...

getText(); liefer Strings zurück
setText(); kann nur Strings annehmen

ich habe eben etwas ausprobiert und ich würde das Problem so lösen:
Code:
private void ergebnis_actionPerformed(ActionEvent e)
{
String s;
a= Integer.parseInt(feld1.getText());
b= Integer.parseInt(feld2.getText());
c=a+b;
s= ""+c;

feld3.setText(s);
}

Die Typen mussten nur gewandelt werden :)

Hoffe, das hilft dir weiter
Gruß
 
das integer.parseint wandelt denn wert in eine integer um oder?

und was mach dann s=" "+c; kann man das nicht weglassen

vielen vielen vielen dank wyatt (bist der größte ;) )
 
das integer.parseint wandelt denn wert in eine integer um oder?

und was mach dann s=" "+c; kann man das nicht weglassen

Ja genau, Integer.parseInt(); wandelt es in einen Int... es gibt noch weitere dieser parse-methoden, die solltest du beherrschen... google einfach mal danach :)

Ich habe gerade Integer.toString(); gefunden... vielleicht funktioniert das... teste es einfach mal aus!
Code:
s = Integer.toString(c);

Gruß
 
danke das programm funktioniert, nun habe ich noch eine frage habe mein prog erweitert und zwar kann man jetzt aus suchen womit gerechnet werden soll + - * oder / das habe ich durch eine combobox realisiert nur wie kann ich es jetzt auslesen und ihm sagen das er mit diesem zeichen rechnen soll

habe schon gegoogelt aber nicht wirklich was sinnvolles gefunden

danke noch mal im voraus
 
Du kannst dir den markierten Operator (in deinem Fall) zurückliefern lassen mit der Methode getSelectedItem(); und dann mit einer switch-case Anweisung die Rechenmethode bestimmen :)

Beispiel:
Code:
char op = (char)combobox.getSelectedItem();

switch(op) {
  case '+' : c = a + b;
     break;
  case '-': c = a - b;
     break;
}

Ich hoffe, das Beispiel funktioniert so... bin mir beim Cast nach char etwas unsicher!

Gruß
 
ja hast recht das mit dem cast ist falsch er schreibt mir:

Error(144,11): cannot cast java.lang.Object to char
 
ja, das dachte ich mir schon...
versuchen wir es mit einem String :)

Java:
String op = (String)combobox.getSelectedItem();

switch(op) {
  case + : c = a + b;
     break;
  case -: c = a - b;
     break;
}

Gruß
 

Neue Beiträge

Zurück