ich habe versucht, mir mit java einen kleinen Taschenrechner zu basteln. das hat auch soweit geklappt. jetzt wollte ich, um das ganze abzurunden, noch ein paar keylistener einbauen, mit denen sich der rechner auch bedienen lässt. allerdings funktioniert das nicht... ich weis nicht, was ich falsch mache. ich hatte das schonmal so gemacht und da lief es wunderbar.
habe auch schon verschiedene varianten ausprobiert, die ich hier über die su-fu gefunden habe, aber es lief keine einzige
hier mal der programm-code. der keylistener befindet sich am ende der klasse.
danke schon mal vorweg
habe auch schon verschiedene varianten ausprobiert, die ich hier über die su-fu gefunden habe, aber es lief keine einzige
hier mal der programm-code. der keylistener befindet sich am ende der klasse.
danke schon mal vorweg
Java:
import java.awt.*;
import java.awt.event.*;
class Double_Rechner extends Frame
{
private Panel zNord = new Panel();
private Panel zSued = new Panel();
private Panel zMitte = new Panel();
private Panel Buttons = new Panel();
private Panel PZahlen = new Panel();
private Panel PRechenzeichen = new Panel();
private TextField Tz1 = new TextField();
private double z1;
private int s, r;
private Color beige=new Color(240,240,180);
private Button zLoeschen=new Button("Löschen");
private Button Beenden = new Button("Beenden");
private Button Zurueck = new Button("Zurück");
private Button [] Rechenzeichen = {new Button ("C"), new Button ("+"),new Button ("-"), new Button ("*"), new Button ("/"), new Button ("sqrt"), new Button ("x²"), new Button ("x³"),new Button ("x^y"), new Button ("+/-"), new Button("1/x"), new Button ("=")};
private Button [] Zahlen = {new Button ("1"),new Button ("2"), new Button ("3"), new Button ("4"), new Button ("5"), new Button ("6"), new Button ("7"), new Button("8"), new Button ("9"), new Button("0"), new Button(","), new Button ("(-)")};
private int n = 0;
public Double_Rechner()
{
setTitle("Taschenrechner");
zNord.setLayout(new FlowLayout());
zNord.setBackground(beige);
zNord.setFont(new Font ("Helvetica", 50,20));
zNord.add(new Label("Taschenrechner"));
zMitte.setLayout(new GridLayout(2,1));
zMitte.setFont(new Font ("Helvetica", 50,20));
zMitte.setBackground(Color.lightGray);
zMitte.add(Tz1);
zMitte.add(Buttons);
Buttons.setLayout(new GridLayout(1,2));
Buttons.add(PZahlen);
Buttons.add(PRechenzeichen);
PZahlen.setLayout(new GridLayout(4,3));
PRechenzeichen.setLayout(new GridLayout(4,3));
do
{
PZahlen.add(Zahlen[n]);
PRechenzeichen.add(Rechenzeichen[n]);
Zahlen[n].setFocusable(false);
Rechenzeichen[n].setFocusable(false);
n = n+1;
}while(n<=11);
zSued.setLayout(new GridLayout(1,3));
zSued.setBackground(beige);
zSued.add(zLoeschen);
zSued.add(Zurueck);
zSued.add(Beenden);
addKeyListener(this);
this.setLayout( new BorderLayout(5,5));
this.add("North",zNord);
this.add("South", zSued);
this.add("Center",zMitte);
Zahlen[0].addActionListener(new ActionListener(){
public void actionPerformed(ActionEvent e){
Schreibe(1);
}});
Zahlen[1].addActionListener(new ActionListener(){
public void actionPerformed(ActionEvent e){
Schreibe(2);
}});
Zahlen[2].addActionListener(new ActionListener(){
public void actionPerformed(ActionEvent e){
Schreibe(3);
}});
Zahlen[3].addActionListener(new ActionListener(){
public void actionPerformed(ActionEvent e){
Schreibe(4);
}});
Zahlen[4].addActionListener(new ActionListener(){
public void actionPerformed(ActionEvent e){
Schreibe(5);
}});
Zahlen[5].addActionListener(new ActionListener(){
public void actionPerformed(ActionEvent e){
Schreibe(6);
}});
Zahlen[6].addActionListener(new ActionListener(){
public void actionPerformed(ActionEvent e){
Schreibe(7);
}});
Zahlen[7].addActionListener(new ActionListener(){
public void actionPerformed(ActionEvent e){
Schreibe(8);
}});
Zahlen[8].addActionListener(new ActionListener(){
public void actionPerformed(ActionEvent e){
Schreibe(9);
}});
Zahlen[9].addActionListener(new ActionListener(){
public void actionPerformed(ActionEvent e){
Schreibe(0);
}});
Zahlen[10].addActionListener(new ActionListener(){
public void actionPerformed(ActionEvent e){
if(s==0)
{
Tz1.setText("0.");
s=1;
}
else
{
Tz1.setText(Tz1.getText()+".");
}
}});
Zahlen[11].addActionListener(new ActionListener(){
public void actionPerformed(ActionEvent e){
if(s==0)
{
Tz1.setText("-");
s=1;
}
}});
Rechenzeichen[0].addActionListener(new ActionListener(){
public void actionPerformed(ActionEvent e){
s=0;
r=0;
z1=0;
Tz1.setText("");
}});
Rechenzeichen[1].addActionListener(new ActionListener(){
public void actionPerformed(ActionEvent e){
rechne();
z1 = getZahl(Tz1);
s=0;
r=1;
}});
Rechenzeichen[2].addActionListener(new ActionListener(){
public void actionPerformed(ActionEvent e){
rechne();
z1 = getZahl(Tz1);
r=2;
s=0;
}});
Rechenzeichen[3].addActionListener(new ActionListener(){
public void actionPerformed(ActionEvent e){
rechne();
z1 = getZahl(Tz1);
r=3;
s=0;
}});
Rechenzeichen[4].addActionListener(new ActionListener(){
public void actionPerformed(ActionEvent e){
rechne();
z1 = getZahl(Tz1);
r=4;
s=0;
}});
Rechenzeichen[5].addActionListener(new ActionListener(){
public void actionPerformed(ActionEvent e){
rechne();
Tz1.setText(""+Math.sqrt(getZahl(Tz1)));
s=0;
}});
Rechenzeichen[6].addActionListener(new ActionListener(){
public void actionPerformed(ActionEvent e){
rechne();
Tz1.setText(""+Math.pow(getZahl(Tz1),2));
s=0;
}});
Rechenzeichen[7].addActionListener(new ActionListener(){
public void actionPerformed(ActionEvent e){
rechne();
Tz1.setText(""+Math.pow(getZahl(Tz1),3));
s=0;
}});
Rechenzeichen[8].addActionListener(new ActionListener(){
public void actionPerformed(ActionEvent e){
rechne();
z1 = getZahl(Tz1);
r=5;
s=0;
}});
Rechenzeichen[9].addActionListener(new ActionListener(){
public void actionPerformed(ActionEvent e){
rechne();
Tz1.setText(""+(getZahl(Tz1)*-1));
s=0;
}});
Rechenzeichen[10].addActionListener(new ActionListener(){
public void actionPerformed(ActionEvent e){
rechne();
Tz1.setText(""+(1/getZahl(Tz1)));
s=0;
}});
Rechenzeichen[11].addActionListener(new ActionListener(){
public void actionPerformed(ActionEvent e){
rechne();
z1 = getZahl(Tz1);
s=0;
r=0;
}});
zLoeschen.addActionListener(new ActionListener(){
public void actionPerformed(ActionEvent e){
Loeschen();
}});
Beenden.addActionListener(new ActionListener(){
public void actionPerformed(ActionEvent e){
setVisible(false);
dispose();
System.exit(0);
}});
Zurueck.addActionListener(new ActionListener(){
public void actionPerformed(ActionEvent e){
Auswahl a = new Auswahl();
a.starte();
a.setSize(300,200);
a.setLocation(getLocation());
a.setVisible(true);
setVisible(false);
}});
Tz1.addKeyListener(new KeyListener() {
public void keyTyped(KeyEvent e)
{
rechne();
z1 = getZahl(Tz1);
s=0;
r=0;
}
public void keyPressed(KeyEvent keyevent){}
public void keyReleased(KeyEvent keyevent){}
});
}
private void rechne()
{
switch(r)
{
case 0:
break;
case 1: Tz1.setText(""+(z1+getZahl(Tz1)));
break;
case 2: Tz1.setText(""+(z1-getZahl(Tz1)));
break;
case 3: Tz1.setText(""+(z1*getZahl(Tz1)));
break;
case 4: Tz1.setText(""+(z1/getZahl(Tz1)));
break;
case 5: Tz1.setText(""+(Math.pow(z1,getZahl(Tz1))));
break;
}
z1=0;
}
public void Schreibe (int i)
{
if(s==0)
{
Tz1.setText(""+i);
s=1;
}
else
{
Tz1.setText(Tz1.getText()+i);
}
}
private void Loeschen()
{
}
private double getZahl(TextField s){return Double.valueOf(s.getText()).doubleValue();}
}
Zuletzt bearbeitet: