Hallo zusammen hab ne Frage zu diesem Quellcode also er ist ausführbar und alles drum und dran
nur würde ich gerne die Zeichen im Taschenrechner stehen lassen wie gehe ich am besten vor ?
also da soll stehen 5+7+88* usw usw also die zeichen sollen sich nicht austauschen sondern stehen bleiben kann mir jemand helfen und mir sagen was ich an welcher stelle ändern muss ?
[Java]
//Taschenrechner
import java.awt.*;
import java.awt.event.*;
import java.lang.*;
public class Taschenrechner extends Frame
{
Button Taste_0,Taste_1,Taste_2, Taste_3,Taste_4,Taste_5 , Taste_6, Taste_7, Taste_8,Taste_9,
Taste_div, Taste_multi,Taste_plu, Taste_min, Taste_glei,Taste_komma;
double Speicher =0;
double Zwischenwert =0; //für 1.Operand
boolean Operand = false;
char akt_Operation ='k'; //'k'eine Operation
boolean neue_Zahl = true;
boolean Vorkomma = true;
TextField Anz; //Display
class Mein_WindowListener extends WindowAdapter
{
public void windowClosing (WindowEvent e)
{ //Programm beenden
System.exit(0);
}
}
//konstruktor
Taschenrechner(String titel)
{
super(titel);
setLayout(new GridLayout (8,2));
Anz = new TextField(10); // 10 Zeichen breit
Anz.setEditable (false); //nicht editierbar
Anz.setText("0.0");
Anz.setBackground(Color.white);
// Schalter erzeugen
Taste_0 = new Button("0");
Taste_1 = new Button("1");
Taste_2 = new Button("2");
Taste_3 = new Button("3");
Taste_4 = new Button("4");
Taste_5 = new Button("5");
Taste_6 = new Button("6");
Taste_7 = new Button("7");
Taste_8 = new Button("8");
Taste_9 = new Button("9");
Taste_div = new Button("/");
Taste_multi = new Button("*");
Taste_plu = new Button("+");
Taste_min= new Button("-");
Taste_glei = new Button("=");
Taste_komma = new Button(".");
//Komponenten hinzufügen
add(new Label (""));
add(Anz); //TextField
add(new Label (""));
add(Taste_7);
add(Taste_8);
add(Taste_9);
add(Taste_4);
add(Taste_5);
add(Taste_6);
add(Taste_1);
add(Taste_2);
add(Taste_3);
add(Taste_0);
add(Taste_komma);
add(Taste_div);
add(Taste_multi);
add(Taste_min);
add(Taste_plu);
add(Taste_glei);
add(new Label (""));
addWindowListener(new Mein_WindowListener());
Taste_0.addActionListener(new drücken());
Taste_1.addActionListener(new drücken());
Taste_2.addActionListener(new drücken());
Taste_3.addActionListener(new drücken());
Taste_4.addActionListener(new drücken());
Taste_5.addActionListener(new drücken());
Taste_6.addActionListener(new drücken());
Taste_7.addActionListener(new drücken());
Taste_8.addActionListener(new drücken());
Taste_9.addActionListener(new drücken());
Taste_div.addActionListener(new drücken());
Taste_multi.addActionListener(new drücken());
Taste_plu.addActionListener(new drücken());
Taste_min.addActionListener(new drücken());
Taste_glei.addActionListener(new drücken());
Taste_komma.addActionListener(new drücken());
}
//Ereignisbehandlung
class drücken implements ActionListener
{
public void actionPerformed(ActionEvent e)
{
String str, akt_Text;
int index;
char Zeichen;
double Wert;
str = e.getActionCommand();
Zeichen = str.charAt(0);
switch(Zeichen)
{
case '+':
case '-':
case '*':
case '/':
if(akt_Operation =='k'){ //keine Operation vorher
Zwischenwert = Double.valueOf(Anz.getText()).doubleValue();
Operand=true;
akt_Operation=Zeichen;
neue_Zahl=true;
break;
}
if(Operand == true){
Berechnung_ausführen();
neue_Zahl=true;
Vorkomma=true;
akt_Operation=Zeichen;
break;
}
case '=':
if(akt_Operation!='k' && Operand==true){
Berechnung_ausführen();
neue_Zahl=true;
Vorkomma=true;
akt_Operation=Zeichen='k';
Operand=false;
break;
}
case '.':
if(neue_Zahl == true){
//wenn mit einem Komma begonnen wird ist der Vorkomma Wert 0
Anz.setText("0");
neue_Zahl=false;
}
if(Vorkomma==true){
Vorkomma=false;
akt_Text=Anz.getText();
akt_Text += ".";
Anz.setText(akt_Text);
}
break;
default: //alles andre muss ein Zahlenbutton sein
if(neue_Zahl==true)
{
neue_Zahl=false;
Anz.setText("");
}
akt_Text=Anz.getText();
Anz.setText("");
akt_Text=Anz.getText();
Anz.setText(akt_Text + Zeichen);
break;
}
//hier wird das Ergebnis berechnet und angezeigt
}
}
void Berechnung_ausführen()
{
double Operand1, Operand2;
double Ergebnis = 0;
Operand1=Zwischenwert;
Operand2=Double.valueOf(Anz.getText()).doubleValue();
switch(akt_Operation)
{
case '+': Ergebnis = Operand1 + Operand2;
break;
case '-': Ergebnis = Operand1 - Operand2;
break;
case '*': Ergebnis = Operand1 * Operand2;
break;
case '/': if(Operand2!=0)
Ergebnis = Operand1 / Operand2;
else
Ergebnis = 0;
break;
}
//Das Ergebnis wird als neuer Zwischenwert gespeichert
Zwischenwert = Ergebnis;
Anz.setText(Double.toString(Ergebnis));
}
public static void main(String args[])
{
//eine Instanz der Fensterklasse anlegen
Taschenrechner Fenster = new Taschenrechner("Taschenrechner");
Fenster.pack();
Fenster.show();
}
}
[/Java]
nur würde ich gerne die Zeichen im Taschenrechner stehen lassen wie gehe ich am besten vor ?
also da soll stehen 5+7+88* usw usw also die zeichen sollen sich nicht austauschen sondern stehen bleiben kann mir jemand helfen und mir sagen was ich an welcher stelle ändern muss ?
[Java]
//Taschenrechner
import java.awt.*;
import java.awt.event.*;
import java.lang.*;
public class Taschenrechner extends Frame
{
Button Taste_0,Taste_1,Taste_2, Taste_3,Taste_4,Taste_5 , Taste_6, Taste_7, Taste_8,Taste_9,
Taste_div, Taste_multi,Taste_plu, Taste_min, Taste_glei,Taste_komma;
double Speicher =0;
double Zwischenwert =0; //für 1.Operand
boolean Operand = false;
char akt_Operation ='k'; //'k'eine Operation
boolean neue_Zahl = true;
boolean Vorkomma = true;
TextField Anz; //Display
class Mein_WindowListener extends WindowAdapter
{
public void windowClosing (WindowEvent e)
{ //Programm beenden
System.exit(0);
}
}
//konstruktor
Taschenrechner(String titel)
{
super(titel);
setLayout(new GridLayout (8,2));
Anz = new TextField(10); // 10 Zeichen breit
Anz.setEditable (false); //nicht editierbar
Anz.setText("0.0");
Anz.setBackground(Color.white);
// Schalter erzeugen
Taste_0 = new Button("0");
Taste_1 = new Button("1");
Taste_2 = new Button("2");
Taste_3 = new Button("3");
Taste_4 = new Button("4");
Taste_5 = new Button("5");
Taste_6 = new Button("6");
Taste_7 = new Button("7");
Taste_8 = new Button("8");
Taste_9 = new Button("9");
Taste_div = new Button("/");
Taste_multi = new Button("*");
Taste_plu = new Button("+");
Taste_min= new Button("-");
Taste_glei = new Button("=");
Taste_komma = new Button(".");
//Komponenten hinzufügen
add(new Label (""));
add(Anz); //TextField
add(new Label (""));
add(Taste_7);
add(Taste_8);
add(Taste_9);
add(Taste_4);
add(Taste_5);
add(Taste_6);
add(Taste_1);
add(Taste_2);
add(Taste_3);
add(Taste_0);
add(Taste_komma);
add(Taste_div);
add(Taste_multi);
add(Taste_min);
add(Taste_plu);
add(Taste_glei);
add(new Label (""));
addWindowListener(new Mein_WindowListener());
Taste_0.addActionListener(new drücken());
Taste_1.addActionListener(new drücken());
Taste_2.addActionListener(new drücken());
Taste_3.addActionListener(new drücken());
Taste_4.addActionListener(new drücken());
Taste_5.addActionListener(new drücken());
Taste_6.addActionListener(new drücken());
Taste_7.addActionListener(new drücken());
Taste_8.addActionListener(new drücken());
Taste_9.addActionListener(new drücken());
Taste_div.addActionListener(new drücken());
Taste_multi.addActionListener(new drücken());
Taste_plu.addActionListener(new drücken());
Taste_min.addActionListener(new drücken());
Taste_glei.addActionListener(new drücken());
Taste_komma.addActionListener(new drücken());
}
//Ereignisbehandlung
class drücken implements ActionListener
{
public void actionPerformed(ActionEvent e)
{
String str, akt_Text;
int index;
char Zeichen;
double Wert;
str = e.getActionCommand();
Zeichen = str.charAt(0);
switch(Zeichen)
{
case '+':
case '-':
case '*':
case '/':
if(akt_Operation =='k'){ //keine Operation vorher
Zwischenwert = Double.valueOf(Anz.getText()).doubleValue();
Operand=true;
akt_Operation=Zeichen;
neue_Zahl=true;
break;
}
if(Operand == true){
Berechnung_ausführen();
neue_Zahl=true;
Vorkomma=true;
akt_Operation=Zeichen;
break;
}
case '=':
if(akt_Operation!='k' && Operand==true){
Berechnung_ausführen();
neue_Zahl=true;
Vorkomma=true;
akt_Operation=Zeichen='k';
Operand=false;
break;
}
case '.':
if(neue_Zahl == true){
//wenn mit einem Komma begonnen wird ist der Vorkomma Wert 0
Anz.setText("0");
neue_Zahl=false;
}
if(Vorkomma==true){
Vorkomma=false;
akt_Text=Anz.getText();
akt_Text += ".";
Anz.setText(akt_Text);
}
break;
default: //alles andre muss ein Zahlenbutton sein
if(neue_Zahl==true)
{
neue_Zahl=false;
Anz.setText("");
}
akt_Text=Anz.getText();
Anz.setText("");
akt_Text=Anz.getText();
Anz.setText(akt_Text + Zeichen);
break;
}
//hier wird das Ergebnis berechnet und angezeigt
}
}
void Berechnung_ausführen()
{
double Operand1, Operand2;
double Ergebnis = 0;
Operand1=Zwischenwert;
Operand2=Double.valueOf(Anz.getText()).doubleValue();
switch(akt_Operation)
{
case '+': Ergebnis = Operand1 + Operand2;
break;
case '-': Ergebnis = Operand1 - Operand2;
break;
case '*': Ergebnis = Operand1 * Operand2;
break;
case '/': if(Operand2!=0)
Ergebnis = Operand1 / Operand2;
else
Ergebnis = 0;
break;
}
//Das Ergebnis wird als neuer Zwischenwert gespeichert
Zwischenwert = Ergebnis;
Anz.setText(Double.toString(Ergebnis));
}
public static void main(String args[])
{
//eine Instanz der Fensterklasse anlegen
Taschenrechner Fenster = new Taschenrechner("Taschenrechner");
Fenster.pack();
Fenster.show();
}
}
[/Java]