Addition zweier Zahlen

J

Johannes Z

Gast
Ich soll für Informatik in der Schule ein Programm Fenster erstellen mit 3 Textfeldern und einem Butten. Wenn man den Butten drückt sollen die Zahlen (nur ganzzahlig und positiv) aus Textfeld 1 und 2 addiert werden und ins Dritte geschrieben werden. Ich hab das bis jetzt so weit:

Java:
package arbeit;
import java.awt.BorderLayout;
import javax.swing.JPanel;
import javax.swing.JFrame;
import java.awt.Dimension;
import javax.swing.JTextField;
import java.awt.Rectangle;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import javax.swing.JButton;
import javax.swing.JTextPane;
public class Oberfläche extends JFrame {
 private static final long serialVersionUID = 1L;
 private JPanel jContentPane = null;
 private JTextField Eingabe1 = null;
 private JTextField Eingabe2 = null;
 private JTextField Ausgabe = null;
 private JButton Plus = null;
 /**
  * This is the default constructor
  */
 public Oberfläche() {
  super();
  initialize();
 }
 /**
  * This method initializes this
  *
  * @return void
  */
 private void initialize() {
  this.setSize(388, 231);
  this.setContentPane(getJContentPane());
  this.setTitle("JFrame");
 }
 /**
  * This method initializes jContentPane
  *
  * @return javax.swing.JPanel
  */
 private JPanel getJContentPane() {
  if (jContentPane == null) {
   jContentPane = new JPanel();
   jContentPane.setLayout(null);
   jContentPane.add(getEingabe1(), null);
   jContentPane.add(getEingabe2(), null);
   jContentPane.add(getAusgabe(), null);
   jContentPane.add(getPlus(), null);
  }
  return jContentPane;
 }
 /**
  * This method initializes Eingabe1 
  *  
  * @return javax.swing.JTextField 
  */
 private JTextField getEingabe1() {
  if (Eingabe1 == null) {
   Eingabe1 = new JTextField();
   Eingabe1.setBounds(new Rectangle(30, 30, 211, 31));
  }
  return Eingabe1;
 }
 /**
  * This method initializes Eingabe2 
  *  
  * @return javax.swing.JTextField 
  */
 private JTextField getEingabe2() {
  if (Eingabe2 == null) {
   Eingabe2 = new JTextField();
   Eingabe2.setBounds(new Rectangle(30, 90, 211, 31));
  }
  return Eingabe2;
 }
 /**
  * This method initializes Ausgabe 
  *  
  * @return javax.swing.JTextField 
  */
 private JTextField getAusgabe() {
  if (Ausgabe == null) {
   Ausgabe = new JTextField();
   Ausgabe.setBounds(new Rectangle(30, 150, 331, 31));
  }
  return Ausgabe;
 }
 /**
  * This method initializes Plus 
  *  
  * @return javax.swing.JButton 
  */
 private JButton getPlus() {
  if (Plus == null) {
   Plus = new JButton();
   Plus.setBounds(new Rectangle(300, 75, 46, 46));
   Plus.setText("+");
   ActionListener al = new ActionListener() {
    @Override
    public void actionPerformed(ActionEvent e) {
     String meinWert1 = Eingabe1.getText();
     int Zahl1 = Integer.parseInt(meinWert1);
     
     String meinWert2 = Eingabe2.getText();
     int Zahl2 = Integer.parseInt(meinWert2);
     
     int Ausgabe1 = Zahl1+Zahl2 ;
     
     String asdf = (Integer(Ausgabe1)).toString();
     
     Ausgabe.setText(asdf);
     
          
     

     
     
    }
    private Object Integer(int ausgabe1) {
     // TODO Auto-generated method stub
     return null;
    }
   };
   Plus.addActionListener(al);
   
  }
  return Plus;
 }
}  //  @jve:decl-index=0:visual-constraint="10,10"


Wenn ich es dann ausfüre kommt diese Meldung:

Exception in thread "AWT-EventQueue-0" java.lang.NumberFormatException: For input string: ""
at java.lang.NumberFormatException.forInputString(Unknown Source)
at java.lang.Integer.parseInt(Unknown Source)
at java.lang.Integer.parseInt(Unknown Source)
at arbeit.Oberfläche$1.actionPerformed(Oberfläche.java:103)
at javax.swing.AbstractButton.fireActionPerformed(Unknown Source)
at javax.swing.AbstractButton$Handler.actionPerformed(Unknown Source)
at javax.swing.DefaultButtonModel.fireActionPerformed(Unknown Source)
at javax.swing.DefaultButtonModel.setPressed(Unknown Source)
at javax.swing.plaf.basic.BasicButtonListener.mouseReleased(Unknown Source)
at java.awt.Component.processMouseEvent(Unknown Source)
at javax.swing.JComponent.processMouseEvent(Unknown Source)
at java.awt.Component.processEvent(Unknown Source)
at java.awt.Container.processEvent(Unknown Source)
at java.awt.Component.dispatchEventImpl(Unknown Source)
at java.awt.Container.dispatchEventImpl(Unknown Source)
at java.awt.Component.dispatchEvent(Unknown Source)
at java.awt.LightweightDispatcher.retargetMouseEvent(Unknown Source)
at java.awt.LightweightDispatcher.processMouseEvent(Unknown Source)
at java.awt.LightweightDispatcher.dispatchEvent(Unknown Source)
at java.awt.Container.dispatchEventImpl(Unknown Source)
at java.awt.Window.dispatchEventImpl(Unknown Source)
at java.awt.Component.dispatchEvent(Unknown Source)
at java.awt.EventQueue.dispatchEventImpl(Unknown Source)
at java.awt.EventQueue.access$000(Unknown Source)
at java.awt.EventQueue$1.run(Unknown Source)
at java.awt.EventQueue$1.run(Unknown Source)
at java.security.AccessController.doPrivileged(Native Method)
at java.security.AccessControlContext$1.doIntersectionPrivilege(Unknown Source)
at java.security.AccessControlContext$1.doIntersectionPrivilege(Unknown Source)
at java.awt.EventQueue$2.run(Unknown Source)
at java.awt.EventQueue$2.run(Unknown Source)
at java.security.AccessController.doPrivileged(Native Method)
at java.security.AccessControlContext$1.doIntersectionPrivilege(Unknown Source)
at java.awt.EventQueue.dispatchEvent(Unknown Source)
at java.awt.EventDispatchThread.pumpOneEventForFilters(Unknown Source)
at java.awt.EventDispatchThread.pumpEventsForFilter(Unknown Source)
at java.awt.EventDispatchThread.pumpEventsForHierarchy(Unknown Source)
at java.awt.EventDispatchThread.pumpEvents(Unknown Source)
at java.awt.EventDispatchThread.pumpEvents(Unknown Source)
at java.awt.EventDispatchThread.run(Unknown Source)

Ich weiß auch nicht ob es schon einen Beitrag zu dem Problem gibt weil ich keine Ahnung hab was das Problem(e) ist.



MfG Johannes
 
Zuletzt bearbeitet von einem Moderator:

jgh

Top Contributor
anstatt:

[java=109] String asdf = (Integer(Ausgabe1)).toString();
[/code]

das hier...und diese Exception sollte nicht mehr fliegen.
[JAVA=109]String asdf = Ausgabe1 + "";[/code]
 

Johzi

Mitglied
Jetzt funktionier es Vielen Dank.

Ich hab noch eine kleine Frage wie kann ich brüfen ob der eingegbene String eine gültige Zahl ist?
 

Spin

Top Contributor
Java:
 try {
     int x = Integer.parseInt(input);
     System.out.println(x);
 }
 catch(NumberFormatException nFE) {
     System.out.println("Not an Integer");
}

Es geht auch mit der Klasse Character, aber das ist wohl zu viel für deine Zwecke ;)

grüße Spin
 

AmunRa

Gesperrter Benutzer
Java:
String asdf = Ausgabe1 + "";

Das ist sehr unsauber und sollte man daher eher nicht machen. Dafür gibst eigentlich
Java:
String asdf = String.valueOf(Ausgabe1);

Und in Java sollte man Variablenname in mit einem kleinen Buchstaben beginnen. Also "lowerCamelCase".
 

AmunRa

Gesperrter Benutzer
Da man auch Exceptions eigentlich nicht zur Flusssteuerung verwenden sollte, gibt es noch diese Möglichkeit zu überprüfen ob eine String nur eine Zahl ist.

Java:
public boolean isInteger(String zahl){
   return zahl.matches("[-]?[0-9]+");
}


Diese Methode überprüft ob es sich um einen ganzzahligen Wert handelt, wobei auch negative Zahlen erlaubt sind. Nicht überprüft wird, ob diese Zahl auch in einem int platz hat.
 

Landei

Top Contributor
Das ist sehr unsauber und sollte man daher eher nicht machen.

Inwiefern ist das "unsauber"? Es liefert das korrekte Ergebnis, wird vom Compiler optimiert und die "Absicht" des Programmierers ist auf den ersten Blick zu erkennen (sicher wäre es schöner, wenn man als Verkettungs-Operator in Java nicht ausgerechnet + verwendet hätte, aber dem ist nunmal so).
 

AmunRa

Gesperrter Benutzer
Es wird eben nicht wirklich weg optimiert.

Gab dazu schon einige Threads z.B. http://www.java-forum.org/java-basics-anfaenger-themen/84198-int-string-umwandeln.html

und

das Problem ist eben, dass der Compiler zumindest bei mir im Bytecode, tatsächlich versucht einen leeren String zu erzeugt und daher 3 Strings erzeugt werden , wo eigentlich nur einer von Nöten wäre.
während bei der String.valueOf Variante wirklich nur diese Methode aufgerufen wird.
 
Zuletzt bearbeitet:
Ähnliche Java Themen
  Titel Forum Antworten Datum
S Addition zweier 32 Byte langer ByteArrays Java Basics - Anfänger-Themen 5
volcanos Addition -> List<Integer> mit Arrays.asList() versus List<Integer>ArrayList<>() Java Basics - Anfänger-Themen 14
K Präzedenregeln in Java sagen, dass +expr und -expr vor + von Addition und - von Addition stehen, warum wird dann z. B. a+b als eine Addition ausgeführ Java Basics - Anfänger-Themen 7
J Double Variable und Addition Java Basics - Anfänger-Themen 2
JavaClap "Bruchrechner" liefert Fehler/keine Ausgabe bei Addition und Subtraktion Java Basics - Anfänger-Themen 0
G Java Bruchrechner Addition, Multiplikation... Java Basics - Anfänger-Themen 12
L Addition von Arrays über die Parameterliste Java Basics - Anfänger-Themen 11
Z Matrix Klasse mit Mehrdimensionalen Array (Addition, Multiplikation, to String) Java Basics - Anfänger-Themen 57
L Addition von 1 bis n, in Arrays umstellen Java Basics - Anfänger-Themen 15
E Addition Array Java Basics - Anfänger-Themen 6
M Array Addition Binärzahlen Java Basics - Anfänger-Themen 9
A Binäre Addition Java Basics - Anfänger-Themen 15
M Addition mit hohen Zahlen - Hilfe Java Basics - Anfänger-Themen 5
N Rekursive Addition mit Scanner Java Basics - Anfänger-Themen 12
X Compiler-Fehler Possible loss of precision bei addition von int und char Java Basics - Anfänger-Themen 5
C Logischer Fehler mit Addition von Arrays Java Basics - Anfänger-Themen 3
I Schriftliche Addition Arrays Java Basics - Anfänger-Themen 2
T Operatoren Multiplikation nur mit Addition, Subtraktion und Vergleich Java Basics - Anfänger-Themen 29
B Erste Schritte Addition von double in switch-Anweisung Java Basics - Anfänger-Themen 2
X Addition von Strings Java Basics - Anfänger-Themen 12
X Arrays/Addition Java Basics - Anfänger-Themen 18
R addition von 2 Array Objekten Java Basics - Anfänger-Themen 5
S Multiplikation durch Addition, Subtraktion und Vergleich von Zahlen Java Basics - Anfänger-Themen 14
K Datentypen Kurzform Addition geht, Langform scheitert am Typen Java Basics - Anfänger-Themen 6
A Binäre Addition Java Basics - Anfänger-Themen 5
K char-int-Addition in System.out.print Java Basics - Anfänger-Themen 3
T Matrizzen addition mit zufallszahlen Java Basics - Anfänger-Themen 10
P Addition von 2 Variablen Java Basics - Anfänger-Themen 3
J Vector Addition Java Basics - Anfänger-Themen 5
E Addition von char und int als Zeichen ausgeben Java Basics - Anfänger-Themen 11
C Falsches Ergebnis float-Addition Java Basics - Anfänger-Themen 10
X Addition rekursiv ohne Schleife Java Basics - Anfänger-Themen 10
S Problem bei Matrix Addition Java Basics - Anfänger-Themen 5
E Addition von Arrays Java Basics - Anfänger-Themen 4
H Mysteriöse Ausgaben nach Addition Java Basics - Anfänger-Themen 5
M Ausgabe einer gerade Zahl nur mit Addition,subtraktion und vergleichsoperatoren! Java Basics - Anfänger-Themen 4
J klasse vektor addition Java Basics - Anfänger-Themen 10
S Anzahl der Überträge bei einer Addition ausgeben Java Basics - Anfänger-Themen 8
S Addition von eigenen Objekten mit "+" Symbol Java Basics - Anfänger-Themen 19
2 Variablenüberlauf bei Addition, Multiplikation Java Basics - Anfänger-Themen 2
A ungenaue addition Java Basics - Anfänger-Themen 2
A Addition mehrdimmensionaler Arrays - Klausurfrage :-( Java Basics - Anfänger-Themen 3
G Addition von 2 Matrizen Java Basics - Anfänger-Themen 31
J Addition von double values fehlerhaft? Java Basics - Anfänger-Themen 5
H Subtraktion mittels Negierung auf Addition zurückführen Java Basics - Anfänger-Themen 4
W Addition von Arrays bzw. Vektoren Java Basics - Anfänger-Themen 2
V Addition in einem Zweidimensionalenfeld Java Basics - Anfänger-Themen 8
Fats Waller Compiler-Fehler Kann ich einen String und die Summe zweier Char Werte mittels der println Anweisung ausgeben Java Basics - Anfänger-Themen 4
C Kollision zweier Rechtecke, Schnittpunkte bestimmen Java Basics - Anfänger-Themen 25
C alle möglichen Kombinationen zweier Ziffern auf drei / vier / und 'n" Stellen Java Basics - Anfänger-Themen 11
D Interaktion zweier Objekte Java Basics - Anfänger-Themen 5
J Transformation zweier Integer in ein Double Java Basics - Anfänger-Themen 26
H Gemeinsame Schnittmenge zweier Arrays ausgeben Java Basics - Anfänger-Themen 12
F Erstellen zweier Objekte mit dem selben Inhalt Java Basics - Anfänger-Themen 1
K Datentypen Einträge zweier Matrizen vergleichen Java Basics - Anfänger-Themen 4
K Erste Schritte Berechnung der Summe zweier Arrays Java Basics - Anfänger-Themen 15
S Vergleich zweier ArrayLists mit Ausgabe an dritte ArrayList Java Basics - Anfänger-Themen 5
I Schnittpunkt zweier Geraden berechnen Java Basics - Anfänger-Themen 25
G Klassen Vergleich zweier Klassen Java Basics - Anfänger-Themen 23
S Implementieren zweier Klassen Java Basics - Anfänger-Themen 5
P Ungerade Zahlen ausgeben lassen zwischen Spannweite zweier eingegeben zahlen Java Basics - Anfänger-Themen 6
L Vergleich zweier Variablen, mit Abweichung Java Basics - Anfänger-Themen 3
N Methoden Methode zum Vergleich zweier Geburtstage Java Basics - Anfänger-Themen 5
K Multiplikation zweier Matrizen Java Basics - Anfänger-Themen 23
D Zusammenfassen zweier Programme Java Basics - Anfänger-Themen 3
B Kreuzprodukt zweier Vektoren (Erste Java Aufgabe - Hilfestellungen und Tips erwünscht) Java Basics - Anfänger-Themen 4
M Vergleich zweier Array Stellen mit equals/NullpointerException Java Basics - Anfänger-Themen 9
L BufferdImage schwarzes Bild nach zusammenfügen zweier Bilder Java Basics - Anfänger-Themen 8
N Vergleich zweier String Arrays scheitert Java Basics - Anfänger-Themen 3
C Proportionale Abnahme zweier Werte Java Basics - Anfänger-Themen 4
O ArrayListe sortieren anhand zweier Parameter Java Basics - Anfänger-Themen 4
C Inhalte zweier Vektoren vergleichen Java Basics - Anfänger-Themen 3
T Programm, das die Differenz zweier Daten ausgibt Java Basics - Anfänger-Themen 4
S Ermittlung des GGTs zweier Werte Java Basics - Anfänger-Themen 5
Y Erste Schritte Verknüpfung zweier JAVA-Codes Java Basics - Anfänger-Themen 8
A Methoden Gedanken Anstöße zur Realisierung zweier Ideen (Grafisch Sekunden zählen und Frameaufteilung) Java Basics - Anfänger-Themen 18
I Einlese Abfrage zweier Variablen in einem Fenster Java Basics - Anfänger-Themen 6
A Durchschnitt zweier Mengen berechnen Java Basics - Anfänger-Themen 3
G Kombination zweier Befehle (Preis festlegen & Rabatt berechnen) Java Basics - Anfänger-Themen 3
W Methoden größe zweier tiere vergleichen Java Basics - Anfänger-Themen 15
K Schnitt zweier Ebenen ergibt Gerade Java Basics - Anfänger-Themen 10
L vergleich zweier texte Java Basics - Anfänger-Themen 18
B Vergleich zweier Objekte durch "Hashfunktion" Java Basics - Anfänger-Themen 12
J Dimensionen zweier Arrays vergleichen Java Basics - Anfänger-Themen 4
U Größenvergleich / Dimensionsvergleich zweier Matrizen Java Basics - Anfänger-Themen 2
N Datenaustausch zweier rechner Java Basics - Anfänger-Themen 4
turmaline Gleicheit zweier Listen Java Basics - Anfänger-Themen 12
S Print Methode zweier "Classes" kombinieren Java Basics - Anfänger-Themen 2
C Dateiinhalt zweier Dateien auf Gleichheit prüfen Java Basics - Anfänger-Themen 3
W Unterschiede zweier Dateien herauslesen Java Basics - Anfänger-Themen 7
P Unterschiede zweier System.in Varianten Java Basics - Anfänger-Themen 3
I Abhängigkeiten zweier Klassen Java Basics - Anfänger-Themen 25
G Vergleich zweier Arrays Java Basics - Anfänger-Themen 8
D Eine Nachkommazahl zweier Double vergleichen Java Basics - Anfänger-Themen 4
N sortieren zweier abhängiger array listen Java Basics - Anfänger-Themen 12
S Addieren zweier Arrays Java Basics - Anfänger-Themen 10
T ermittlung des minimus zweier eingegebener werte Java Basics - Anfänger-Themen 7
G größere zweier zahlen ermitteln und ausgeben Java Basics - Anfänger-Themen 6
G Summe zweier doubles falsch? Java Basics - Anfänger-Themen 10
I Kollision zweier Rechtecke Java Basics - Anfänger-Themen 9

Ähnliche Java Themen

Neue Themen


Oben