Hallo,
in der actionPerformed- Methode des Plus-Buttons soll auch ne plus-Rechnung der eingegebenen Zahlen durchgeführt werden. Das ist mein Ansatz:
Habe die Variable ergebnis im Gesamtcode global deklariert:
Wie gesagt, an der Plus-Operation scheiterts eben. Ich bekomme stets die vorherige Zahl angezeigt, ohne dass die aktuell eingebene Zahl dazugezählt wird....
Danke im Voraus für eure Hilfestellungen ...
in der actionPerformed- Methode des Plus-Buttons soll auch ne plus-Rechnung der eingegebenen Zahlen durchgeführt werden. Das ist mein Ansatz:
Code:
bPlus.addActionListener( new ActionListener (){
public void actionPerformed (ActionEvent e){
int zahl =(Integer.parseInt(tAnzeige.getText())) ;
ergebnis =+ zahl;
String ausgabe = Integer.toString(ergebnis);
tAnzeige.setText(ausgabe);
}
}
);
Habe die Variable ergebnis im Gesamtcode global deklariert:
Code:
package Uebung1;
import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
import com.sun.org.apache.xml.internal.utils.StringToIntTable;
public class Taschenrechner extends JFrame{
JTextField tAnzeige = new JTextField ("0",30);
JButton b1 = new JButton ("1");
JButton b2 = new JButton ("2");
JButton b3 = new JButton ("3");
JButton b4 = new JButton ("4");
JButton b5 = new JButton ("5");
JButton b6 = new JButton ("6");
JButton b7 = new JButton ("7");
JButton b8 = new JButton ("8");
JButton b9 = new JButton ("9");
JButton b0 = new JButton ("0");
JButton bKomma = new JButton (",");
JButton bIstgleich = new JButton ("=");
JButton bPlus = new JButton ("+");
JButton bMinus = new JButton ("-");
JButton bMal = new JButton ("*");
JButton bGeteilt = new JButton ("/");
JButton bRücktaste = new JButton ("<<");
JButton bLöschen = new JButton ("C");
JButton bAusschalten = new JButton ("OFF");
JPanel panel = new JPanel ();
JPanel panel2 = new JPanel ();
JPanel panel3 = new JPanel ();
JPanel panel4 = new JPanel ();
int ergebnis;
public Taschenrechner() {
// Oberflächen-Festlegung
super ("Taschenrechner");
setLocation (400,300);
setResizable (false);
this.getContentPane().setLayout (new BorderLayout (0,10));
tAnzeige.setHorizontalAlignment(tAnzeige.RIGHT);
tAnzeige.setEditable(false); // cursor ausblenden
panel2.setLayout(new BorderLayout (0,10));
panel2.add(BorderLayout.NORTH,tAnzeige);
panel3.setLayout(new BorderLayout(0,5));
panel4.setLayout(new GridLayout (1,2,5,0));
panel4.add(bRücktaste);
panel4.add(bLöschen);
panel3.add(BorderLayout.WEST,panel4);
panel3.add(BorderLayout.EAST,bAusschalten);
panel2.add(BorderLayout.CENTER,panel3);
this.getContentPane().add(BorderLayout.NORTH,panel2);
panel.setLayout(new GridLayout (4,4,15,15));
panel.add(b7);
panel.add(b8);
panel.add(b9);
panel.add(bGeteilt);
panel.add(b4);
panel.add(b5);
panel.add(b6);
panel.add(bMal);
panel.add(b1);
panel.add(b2);
panel.add(b3);
panel.add(bMinus);
panel.add(bKomma);
panel.add(b0);
panel.add(bIstgleich);
panel.add(bPlus);
this.getContentPane().add(BorderLayout.CENTER,panel);
// Button-Funktionalität
b1.addActionListener (new ActionListener (){
public void actionPerformed (ActionEvent e){
if (tAnzeige.getText().equals("0")){
tAnzeige.setText("");
tAnzeige.setText("1");
}
else
tAnzeige.setText(tAnzeige.getText() + e.getActionCommand());
}
}
);
b2.addActionListener (new ActionListener (){
public void actionPerformed (ActionEvent e){
if (tAnzeige.getText().equals("0")){
tAnzeige.setText("");
tAnzeige.setText("2");
}
else
tAnzeige.setText(tAnzeige.getText() + e.getActionCommand());
}
}
);
b3.addActionListener (new ActionListener (){
public void actionPerformed (ActionEvent e){
if (tAnzeige.getText().equals("0")){
tAnzeige.setText("");
tAnzeige.setText("3");
}
else
tAnzeige.setText(tAnzeige.getText() + e.getActionCommand());
}
}
);
b4.addActionListener (
new ActionListener (){public void actionPerformed (ActionEvent e){
if (tAnzeige.getText().equals("0")){
tAnzeige.setText("");
tAnzeige.setText("4");
}
else
tAnzeige.setText(tAnzeige.getText() + e.getActionCommand());
}
}
);
b5.addActionListener (new ActionListener (){
public void actionPerformed (ActionEvent e){
if (tAnzeige.getText().equals("0")){
tAnzeige.setText("");
tAnzeige.setText("5");
}
else
tAnzeige.setText(tAnzeige.getText() + e.getActionCommand());
}
}
);
b6.addActionListener (new ActionListener (){
public void actionPerformed (ActionEvent e){
if (tAnzeige.getText().equals("0")){
tAnzeige.setText("");
tAnzeige.setText("6");
}
else
tAnzeige.setText(tAnzeige.getText() + e.getActionCommand());
}
}
);
b7.addActionListener (new ActionListener (){
public void actionPerformed (ActionEvent e){
if (tAnzeige.getText().equals("0")){
tAnzeige.setText("");
tAnzeige.setText("7");
}
else
tAnzeige.setText(tAnzeige.getText() + e.getActionCommand());
}
}
);
b8.addActionListener (new ActionListener (){
public void actionPerformed (ActionEvent e){
if (tAnzeige.getText().equals("0")){
tAnzeige.setText("");
tAnzeige.setText("8");
}
else
tAnzeige.setText(tAnzeige.getText() + e.getActionCommand());
}
}
);
b9.addActionListener ( new ActionListener (){
public void actionPerformed (ActionEvent e){
if (tAnzeige.getText().equals("0")){
tAnzeige.setText("");
tAnzeige.setText("9");
}
else
tAnzeige.setText(tAnzeige.getText() + e.getActionCommand());
}
}
);
b0.addActionListener (new ActionListener (){
public void actionPerformed (ActionEvent e){
if (tAnzeige.getText().equals("0")){
tAnzeige.setText("0");
}
else
tAnzeige.setText(tAnzeige.getText() + e.getActionCommand());
}
}
);
bRücktaste.addActionListener(new ActionListener (){
public void actionPerformed (ActionEvent e){
if (!(tAnzeige.getText().equals("0"))){
String t = tAnzeige.getText();
StringBuffer buf = new StringBuffer ();
buf.append(new String (t));
if (buf.length()!=1){
buf.deleteCharAt(t.length()-2);
t=buf.toString();
tAnzeige.setText(t);
}
else
tAnzeige.setText("0");
}
}
}
);
bLöschen.addActionListener (new ActionListener (){
public void actionPerformed (ActionEvent e){
if (!(tAnzeige.getText().equals("0")))
tAnzeige.setText("0");
}
}
);
bAusschalten.addActionListener ( new ActionListener (){
public void actionPerformed (ActionEvent e){
System.exit(0);
}
}
);
// Plus-Operation
bPlus.addActionListener(new ActionListener (){
public void actionPerformed (ActionEvent e){
int zahl =(Integer.parseInt(tAnzeige.getText())) ;
ergebnis =+ zahl;
String z = Integer.toString(ergebnis);
tAnzeige.setText(z);
}
}
);
pack ();
setVisible (true);
}
public Insets getInsets () {
return new Insets (40,15,15,15);
}
public static void main (String []args){
new Taschenrechner ();
}
}
Wie gesagt, an der Plus-Operation scheiterts eben. Ich bekomme stets die vorherige Zahl angezeigt, ohne dass die aktuell eingebene Zahl dazugezählt wird....
Danke im Voraus für eure Hilfestellungen ...