nochmal Taschenrechner ;)

Status
Nicht offen für weitere Antworten.
S

Skauuwix

Gast
Hi,

ich hab gestern schon mal wegen meinem Taschenrechner geschrieben...
heut hab ich noch ne frage. ich hätte gern dass man den Taschenrechner übers Numpad steuern kann...

könnt ihr mir da vieleicht einen Tip geben, mit was ich da anfangen soll...ich hab mit actionListener und action performed experimentiert abe es hat nicht geklappt :cry:
 
S

Skauuwix

Gast
Code:
import java.awt.*;
import java.awt.event.*;
public class Taschenrechner extends Frame
 implements WindowListener,ActionListener
 {
 Label l1;
 TextField t1;
 Button b0, b1, b2, b3, b4, b5, b6, b7, b8, b9,
 bplus, bminus, bmal, bgleich, bpunkt, bclear, bgeteilt;
 boolean Rechne=true;
 double Zahl = 0;
 String Operation="";
 
/**
* erstellt die Oberflaeche des Taschenrechners
**/
public Taschenrechner()

{Frame window = new Frame("");
window.addWindowListener(this);
window.setTitle("Roche");
window.setSize(165,280);
window.setLocation(200,200);
window.setBackground(Color.black);
/**
* erstellt das Anzeigefeld des Taschenrechners
**/
t1= new TextField("");
t1.setSize(125,20);
t1.setLocation(20,40);
t1.setEditable(false);
t1.setBackground(Color.white);
window.add(t1);
/**
* erstellt die Buttons (0-9) des Taschenrechners
**/
b7= new Button("7");
b7.setBackground(Color.white);
b7.setSize(30,25);
b7.setLocation(20,110);
b7.addActionListener(this);

window.add(b7);

b8= new Button("8");
b8.setSize(30,25);
b8.setLocation(50,100);
b8.addActionListener(this);
b8.setBackground(Color.white);
window.add(b8 );

b9= new Button("9");
b9.setSize(30,25);
b9.setLocation(80,110);
b9.addActionListener(this);
b9.setBackground(Color.white);
window.add(b9);

b4= new Button("4");
b4.setSize(30,25);
b4.setLocation(20,140);
b4.addActionListener(this);
b4.setBackground(Color.white);
window.add(b4);

b5= new Button("5");
b5.setSize(30,25);
b5.setLocation(50,130);
b5.addActionListener(this);
b5.setBackground(Color.white);
window.add(b5);

b6= new Button("6");
b6.setSize(30,25);
b6.setLocation(80,140);
b6.addActionListener(this);
b6.setBackground(Color.white);
window.add(b6);

b1= new Button("1");
b1.setSize(30,25);
b1.setLocation(20,170);
b1.addActionListener(this);
b1.setBackground(Color.white);
window.add(b1);

b2= new Button("2");
b2.setSize(30,25);
b2.setLocation(50,160);
b2.addActionListener(this);
b2.setBackground(Color.white);
window.add(b2);

b3= new Button("3");
b3.setSize(30,25);
b3.setLocation(80,170);
b3.addActionListener(this);
b3.setBackground(Color.white);
window.add(b3);

b0= new Button("0");
b0.setSize(30,25);
b0.setLocation(50,190);
b0.addActionListener(this);
b0.setBackground(Color.white);
window.add(b0);

/**
* erstellt die Operator-Buttons (C, +, -, *, /, =, .) des Taschenrechners
**/
bclear= new Button("C");
bclear.setSize(20,15);
bclear.setLocation(115,70);
bclear.addActionListener(this);
bclear.setBackground(Color.red);
window.add(bclear);


bplus= new Button("+");
bplus.setSize(30,55);
bplus.setLocation(115,190);
bplus.addActionListener(this);
bplus.setBackground(Color.red);
window.add(bplus);



bminus= new Button("-");
bminus.setSize(30,25);
bminus.setLocation(115,130);
bminus.addActionListener(this);
bminus.setBackground(Color.red);
window.add(bminus);


bpunkt= new Button(".");
bpunkt.setSize(30,25);
bpunkt.setLocation(20,220);
bpunkt.addActionListener(this);
bpunkt.setBackground(Color.red);
window.add(bpunkt);

bgleich= new Button("=");
bgleich.setSize(60,25);
bgleich.setLocation(52,220);
bgleich.addActionListener(this);
bgleich.setBackground(Color.red);
window.add(bgleich);

bmal= new Button("*");
bmal.setSize(30,25);
bmal.setLocation(115,160);
bmal.addActionListener(this);
bmal.setBackground(Color.red);
window.add(bmal);

bgeteilt= new Button("/");
bgeteilt.setSize(30,25);
bgeteilt.setLocation(115,100);
bgeteilt.addActionListener(this);
bgeteilt.setBackground(Color.red);
window.add(bgeteilt);
/**
* macht die Oberfläche des Taschenrechners sichtbar
**/
l1= new Label("");window.add(l1);
window.setVisible(true);
}//Ende Taschenrechner


/**
* Wird aufgerufen, wenn das Fenster geschlossen wird
**/
public void windowClosing(WindowEvent e)
{System.exit(0);}
/**
* Wird aufgerufen, wenn das Fenster aktiviert wird
**/
public void windowActivated(WindowEvent e){}
/**
* Wird aufgerufen, wenn das Fenster mit dispose() geschlossen wurde
**/
public void windowClosed(WindowEvent e){}
/**
* Wird aufgerufen, wenn das Fenster deaktiviert wird
**/
public void windowDeactivated(WindowEvent e){}
/**
* Wird aufgerufen, wenn das Fenster wieder hochgeholt wird
**/
public void windowDeiconified(WindowEvent e){}
/**
*Wird aufgerufen, wenn das Fenster zum Icon verkleinert wird
**/
public void windowIconified(WindowEvent e){}
/**
*Wird aufgerufen, wenn Fenster geöffnet wurde
**/
public void windowOpened(WindowEvent e){}

  /**
* Erkennung von Eingaben
**/
 public void actionPerformed(ActionEvent ea)
 {
  int h;
  String inh = new String();
  

  String but=ea.getActionCommand();
  if (but=="0"){ziffer("0");}
  else if (but=="1"){ziffer("1");}
  else if (but=="2"){ziffer("2");}
  else if (but=="3"){ziffer("3");}
  else if (but=="4"){ziffer("4");}
  else if (but=="5"){ziffer("5");}
  else if (but=="6"){ziffer("6");}
  else if (but=="7"){ziffer("7");}
  else if (but=="8"){ziffer("8");}
  else if (but=="9"){ziffer("9");}
  else if (but=="+"){verkn("+");}
  else if (but=="-"){verkn("-");}
  else if (but=="*"){verkn("*");}
  else if (but=="/"){verkn("/");}
  else if (but==".")
  {
   if (Rechne) {t1.setText("0.");Rechne = false;}
   else
   {
    inh = new String(t1.getText());
    h = inh.indexOf(".");
    if (h < 0) {t1.setText(t1.getText() + ".");}
   }//else
  }
  else if (but=="C")
  {
   t1.setText("");
   Rechne=true;
   Zahl=0;
   Operation="";
  }
  else if (but=="="){verkn("");}
 }//Ende actionPerformed

/**
 * schreib in Display
 **/
  public void ziffer(String s)
  {
   if (Rechne) {t1.setText(s);Rechne = false;}
   else
   {
    String inh = new String(t1.getText());
    /**zähle die Punkte**/
    int h = inh.indexOf(".");
    /**bei 6 ohne punkt oder 25 mit punkt**/
    if (((h<0)&&(inh.length()<6)) || ((h>0)&&(inh.length()<25))) t1.setText(t1.getText() + s);
    else return;
   }
  }//Ende ziffer
  
/**
* durchführung der Rechnung
**/
  public void verkn(String s)
  {
   Double wert;
   Rechne = true;
   try
   {
    if (Operation=="")
    {    
     wert=new Double(t1.getText());
     Zahl= wert.doubleValue();
     Operation=s;
    }
         else
    {
     wert=new Double(t1.getText());
     if (Operation=="+")
     {Zahl=Zahl+wert.doubleValue();}
     else if (Operation=="-")
     {Zahl=Zahl-wert.doubleValue();}
     else if (Operation=="*")
     {Zahl=Zahl*wert.doubleValue();}
          else if (Operation=="/")
     {Zahl=Zahl/wert.doubleValue();}
     Operation=s;
     t1.setText(s.valueOf(Zahl));
    }
   }//try
   catch (ArithmeticException e)
   {
    t1.setText("Error:" + e );ziffer("");
       }
   catch (Throwable e)
   {
    t1.setText("Fehler:" + e );ziffer("");
   }
  }//Ende verkn
/**
* main
**/
public static void main(String[]args)
{
Taschenrechner meinFenster=new Taschenrechner();
}//Ende main
}
 
S

Skauuwix

Gast
Ja, aber ich kriegs nicht hin das richtig einzubinden.... :oops: und an welcher stelle...
 
S

Skauuwix

Gast
der erkennt bei mir das 'b1.addKeyListener' nicht.
mach ich das richtig :bahnhof:
 

dotlens

Top Contributor
du musst bei Implements ActionListener noch ", KeyListener" hinzufügen. und die Methoden, die der Key Listener verlangt.

Code:
public void keyPressed(keyEvente){}
public void keyTyped(keyEvente){}
public void keyReleased(keyEvente){}
 
S

Skauuwix

Gast
hm...
klappt irgendwie immer noch nicht

hier is mal die Fehlermeldung:



--------------------Configuration: j2sdk1.4.0 <Default>--------------------
C:\Documents and Settings\hildebrp\Desktop\Calculator\da one\Taschenrechner.java:14: <identifier> expected
public void keyPressed(keyEvente){}
^
C:\Documents and Settings\hildebrp\Desktop\Calculator\da one\Taschenrechner.java:332: ')' expected
}//Ende main
^
C:\Documents and Settings\hildebrp\Desktop\Calculator\da one\Taschenrechner.java:14: cannot resolve symbol
symbol : class keyEvente
location: class Taschenrechner
public void keyPressed(keyEvente){}
^
C:\Documents and Settings\hildebrp\Desktop\Calculator\da one\Taschenrechner.java:3: Taschenrechner should be declared abstract; it does not define keyTyped(java.awt.event.KeyEvent) in Taschenrechner
public class Taschenrechner extends Frame
^
C:\Documents and Settings\hildebrp\Desktop\Calculator\da one\Taschenrechner.java:14: missing method body, or declare abstract
public void keyPressed(keyEvente){}
^
5 errors

Process completed.
 

dotlens

Top Contributor
uuups mein Fehler :D

es heisst Event und nicht Evente!

hab mich da wohl vertippt!

Code:
public void keyPressed(keyEvent e){} 
public void keyTyped(keyEvent e){} 
public void keyReleased(keyEvent e){}
 
S

Skauuwix

Gast
das hab ich mir auch schon gedacht, :wink:

kommt aber immer noch ne fehlermeldung:




--------------------Configuration: j2sdk1.4.0 <Default>--------------------
C:\Documents and Settings\hildebrp\Desktop\Calculator\da one\Taschenrechner.java:15: <identifier> expected
public void keyPressed(keyEvent){}
^
C:\Documents and Settings\hildebrp\Desktop\Calculator\da one\Taschenrechner.java:333: ')' expected
}//Ende main
^
C:\Documents and Settings\hildebrp\Desktop\Calculator\da one\Taschenrechner.java:15: cannot resolve symbol
symbol : class keyEvent
location: class Taschenrechner
public void keyPressed(keyEvent){}
^
C:\Documents and Settings\hildebrp\Desktop\Calculator\da one\Taschenrechner.java:4: Taschenrechner should be declared abstract; it does not define keyTyped(java.awt.event.KeyEvent) in Taschenrechner
public class Taschenrechner extends Frame
^
C:\Documents and Settings\hildebrp\Desktop\Calculator\da one\Taschenrechner.java:15: missing method body, or declare abstract
public void keyPressed(keyEvent){}
^
5 errors

Process completed.
 
S

Skauuwix

Gast
ja, hatte ich auch vorhin schon probiert.
ich komm da voll nicht klar, is das so an der richtigen stelle?

ich schick einfach mal mein aktuellen code:
Code:
import java.awt.*;
import java.awt.event.*;

public class Taschenrechner extends Frame
 implements WindowListener,ActionListener,KeyListener
 {
 Label l1;
 TextField t1;
 Button b0, b1, b2, b3, b4, b5, b6, b7, b8, b9,
 bplus, bminus, bmal, bgleich, bpunkt, bclear, bgeteilt;
 boolean Rechne=true;
 double Zahl = 0;
 String Operation="";
 
 public void keyPressed(keyEvent e){} 
 public void keyTyped(keyEvent e){} 
 public void keyReleased(keyEvent e){}
 
/**
* erstellt die Oberflaeche des Taschenrechners
**/
public Taschenrechner()

{Frame window = new Frame("");
window.addWindowListener(this);
window.setTitle("Roche");
window.setSize(165,280);
window.setLocation(200,200);
window.setBackground(Color.black);
/**
* erstellt das Anzeigefeld des Taschenrechners
**/
t1= new TextField("");
t1.setSize(125,20);
t1.setLocation(20,40);
t1.setEditable(false);
t1.setBackground(Color.white);
window.add(t1);
/**
* erstellt die Buttons (0-9) des Taschenrechners
**/
b7= new Button("7");
b7.setLocation(20,110);
window.add(b7);

b8= new Button("8");
b8.setLocation(50,100);
window.add(b8 );

b9= new Button("9");
b9.setLocation(80,110);
window.add(b9);

b4= new Button("4");
b4.setLocation(20,140);
window.add(b4);

b5= new Button("5");
b5.setLocation(50,130);
window.add(b5);

b6= new Button("6");
b6.setLocation(80,140);
window.add(b6);

b1= new Button("1");
b1.setLocation(20,170);
window.add(b1);

b2= new Button("2");
b2.setLocation(50,160);
window.add(b2);

b3= new Button("3");
b3.setLocation(80,170);
window.add(b3);

b0= new Button("0");
b0.setLocation(50,190);
window.add(b0);

/**
* erstellt die Operator-Buttons (C, +, -, *, /, =, .) des Taschenrechners
**/
bclear= new Button("C");
bclear.setLocation(115,70);
window.add(bclear);


bplus= new Button("+");
bplus.setLocation(115,190);
window.add(bplus);



bminus= new Button("-");
bminus.setLocation(115,130);
window.add(bminus);


bpunkt= new Button(".");
bpunkt.setLocation(20,220);
window.add(bpunkt);

bgleich= new Button("=");
bgleich.setLocation(52,220);
window.add(bgleich);

bmal= new Button("*");
bmal.setLocation(115,160);
window.add(bmal);

bgeteilt= new Button("/");
bgeteilt.setLocation(115,100);
window.add(bgeteilt);

/** 
 * Actionlistener
 **/

b9.addActionListener(this);
b8.addActionListener(this);
b7.addActionListener(this);
b6.addActionListener(this);
b5.addActionListener(this);
b4.addActionListener(this);
b3.addActionListener(this);
b2.addActionListener(this);
b1.addActionListener(this);
b0.addActionListener(this);
bgeteilt.addActionListener(this);
bmal.addActionListener(this);
bgleich.addActionListener(this);
bpunkt.addActionListener(this);
bminus.addActionListener(this);
bplus.addActionListener(this);
bclear.addActionListener(this);







/**
 * Größe der Buttons
 **/
 
 b9.setSize(30,25);
 b8.setSize(30,25);
 b7.setSize(30,25);
 b6.setSize(30,25);
 b5.setSize(30,25);
 b4.setSize(30,25);
 b3.setSize(30,25);
 b2.setSize(30,25);
 b1.setSize(30,25);
 b0.setSize(30,25);
 bgeteilt.setSize(30,25);
 bmal.setSize(30,25);
 bgleich.setSize(60,25);
 bpunkt.setSize(30,25);
 bminus.setSize(30,25);
 bplus.setSize(30,55);
 bclear.setSize(20,15);


/**
 * Farbe der Buttons
 **/
 b9.setBackground(Color.white);
 b8.setBackground(Color.white);
 b7.setBackground(Color.white);
 b6.setBackground(Color.white);
 b5.setBackground(Color.white);
 b4.setBackground(Color.white);
 b3.setBackground(Color.white);
 b2.setBackground(Color.white);
 b1.setBackground(Color.white);
 b0.setBackground(Color.white);
 bclear.setBackground(Color.red);
 bgeteilt.setBackground(Color.red);
 bmal.setBackground(Color.red);
 bgleich.setBackground(Color.red);
 bpunkt.setBackground(Color.red);
 bminus.setBackground(Color.red);
 bplus.setBackground(Color.red);
 
/**
* macht die Oberfläche des Taschenrechners sichtbar
**/
l1= new Label("");window.add(l1);
window.setVisible(true);
}//Ende Taschenrechner


/**
* Wird aufgerufen, wenn das Fenster geschlossen wird
**/
public void windowClosing(WindowEvent e)
{System.exit(0);}
/**
* Wird aufgerufen, wenn das Fenster aktiviert wird
**/
public void windowActivated(WindowEvent e){}
/**
* Wird aufgerufen, wenn das Fenster mit dispose() geschlossen wurde
**/
public void windowClosed(WindowEvent e){}
/**
* Wird aufgerufen, wenn das Fenster deaktiviert wird
**/
public void windowDeactivated(WindowEvent e){}
/**
* Wird aufgerufen, wenn das Fenster wieder hochgeholt wird
**/
public void windowDeiconified(WindowEvent e){}
/**
*Wird aufgerufen, wenn das Fenster zum Icon verkleinert wird
**/
public void windowIconified(WindowEvent e){}
/**
*Wird aufgerufen, wenn Fenster geöffnet wurde
**/
public void windowOpened(WindowEvent e){}

  /**
* Erkennung von Eingaben
**/
 public void actionPerformed(ActionEvent ea)
 {
  int h;
  String inh = new String();
  

  String but=ea.getActionCommand();
  if (but=="0"){ziffer("0");}
  else if (but=="1"){ziffer("1");}
  else if (but=="2"){ziffer("2");}
  else if (but=="3"){ziffer("3");}
  else if (but=="4"){ziffer("4");}
  else if (but=="5"){ziffer("5");}
  else if (but=="6"){ziffer("6");}
  else if (but=="7"){ziffer("7");}
  else if (but=="8"){ziffer("8");}
  else if (but=="9"){ziffer("9");}
  else if (but=="+"){verkn("+");}
  else if (but=="-"){verkn("-");}
  else if (but=="*"){verkn("*");}
  else if (but=="/"){verkn("/");}
  else if (but==".")
  {
   if (Rechne) {t1.setText("0.");Rechne = false;}
   else
   {
    inh = new String(t1.getText());
    h = inh.indexOf(".");
    if (h < 0) {t1.setText(t1.getText() + ".");}
   }//else
  }
  else if (but=="C")
  {
   t1.setText("");
   Rechne=true;
   Zahl=0;
   Operation="";
  }
  else if (but=="="){verkn("");}
 }//Ende actionPerformed

/**
 * schreib in Display
 **/
  public void ziffer(String s)
  {
   if (Rechne) {t1.setText(s);Rechne = false;}
   else
   {
    String inh = new String(t1.getText());
    /**zähle die Punkte**/
    int h = inh.indexOf(".");
    /**bei 6 ohne punkt oder 25 mit punkt**/
    if (((h<0)&&(inh.length()<6)) || ((h>0)&&(inh.length()<25))) t1.setText(t1.getText() + s);
    else return;
   }
  }//Ende ziffer
  
/**
* durchführung der Rechnung
**/
  public void verkn(String s)
  {
   Double wert;
   Rechne = true;
   try
   {
    if (Operation=="")
    {    
     wert=new Double(t1.getText());
     Zahl= wert.doubleValue();
     Operation=s;
    }
         else
    {
     wert=new Double(t1.getText());
     if (Operation=="+")
     {Zahl=Zahl+wert.doubleValue();}
     else if (Operation=="-")
     {Zahl=Zahl-wert.doubleValue();}
     else if (Operation=="*")
     {Zahl=Zahl*wert.doubleValue();}
          else if (Operation=="/")
     {Zahl=Zahl/wert.doubleValue();}
     Operation=s;
     t1.setText(s.valueOf(Zahl));
    }
   }//try
   catch (ArithmeticException e)
   {
    t1.setText("Error:" + e );ziffer("");
       }
   catch (Throwable e)
   {
    t1.setText("Fehler:" + e );ziffer("");
   }
  }//Ende verkn
/**
* main
**/
public static void main(String[]args)
{
Taschenrechner meinFenster=new Taschenrechner();
   }//Ende main
  }
 

dotlens

Top Contributor
wie kann ich so viele Fehler in so etwas simplem machen :s

hier, das musst du einfügen:
Code:
	public void keyPressed(KeyEvent e) {}

	public void keyReleased(KeyEvent e) {}

	public void keyTyped(KeyEvent e) {}
KeyEvent muss gross geschrieben werden.
und endlich stimmts :D
 
G

Guest

Gast
:autsch: sry... bin halt noch kein crack :bae:
klappt nun soweit das der compiler durchläuft....
aber wie sag ich dem jetzt das er das numpad erkennt und den buttons die zahlen zuweist?! :oops:
verstehst du was ich mein!?
 

dotlens

Top Contributor
nein damit hab ich mich gemeint... :D

hier der Ansatz:
Code:
	public void keyPressed(KeyEvent e) {
		switch(e.getKeyCode()){
			case KeyEvent.VK_NUMPAD0:
			case KeyEvent.VK_NUMPAD1:
			case KeyEvent.VK_NUMPAD2:
			case KeyEvent.VK_NUMPAD3:
			case KeyEvent.VK_NUMPAD4:
			case KeyEvent.VK_NUMPAD5:
			case KeyEvent.VK_NUMPAD6:
			case KeyEvent.VK_NUMPAD7:
			case KeyEvent.VK_NUMPAD8:
			case KeyEvent.VK_NUMPAD9:
				System.out.println(e.getKeyCode()-96);
			break;
		}
	}
 
G

Guest

Gast
also habs jetzt integriert, und zeigt keine fehlermeldung mehr an... jedoch kann ich drücken wa sich will, in meinem anzeigefeld taucht nix auf. ???:L
mir tuts ja auch leid das ich so rum piens hier aber ich kriegs irgendwie net gebacken... :cry:

ich weiß ja nicht in wie weit du die lösung schon kannst, aber ich wär dir wirklich sehr dankbar wenn du sie mir sagen würdest und mir sie dann erklärst... das strapaziert ganz schön die nerven wenn man so lange an so nem mikrigen programm hängt.
 

dotlens

Top Contributor
Code:
import java.awt.*;
import java.awt.event.*;

public class Taschenrechner extends Frame implements WindowListener,
		ActionListener, KeyListener {

	Label l1;

	TextField t1;

	Button b0, b1, b2, b3, b4, b5, b6, b7, b8, b9, bplus, bminus, bmal,
			bgleich, bpunkt, bclear, bgeteilt;

	boolean Rechne = true;

	double Zahl = 0;

	String Operation = "";

	/**
	 * erstellt die Oberflaeche des Taschenrechners
	 */
	public Taschenrechner()

	{
		addKeyListener(this);
		Frame window = new Frame("");
		window.addWindowListener(this);
		window.setTitle("Roche");
		window.setSize(165, 280);
		window.setLocation(200, 200);
		window.setBackground(Color.black);
		/**
		 * erstellt das Anzeigefeld des Taschenrechners
		 */
		t1 = new TextField("");
		t1.setSize(125, 20);
		t1.setLocation(20, 40);
		t1.setEditable(false);
		t1.setBackground(Color.white);
		t1.addKeyListener(this);
		window.add(t1);
		/**
		 * erstellt die Buttons (0-9) des Taschenrechners
		 */
		b7 = new Button("7");
		b7.setLocation(20, 110);
		b7.addKeyListener(this);
		window.add(b7);

		b8 = new Button("8");
		b8.setLocation(50, 100);
		b8.addKeyListener(this);
		window.add(b8);

		b9 = new Button("9");
		b9.setLocation(80, 110);
		b9.addKeyListener(this);
		window.add(b9);

		b4 = new Button("4");
		b4.setLocation(20, 140);
		b4.addKeyListener(this);
		window.add(b4);

		b5 = new Button("5");
		b5.setLocation(50, 130);
		b5.addKeyListener(this);
		window.add(b5);

		b6 = new Button("6");
		b6.setLocation(80, 140);
		b6.addKeyListener(this);
		window.add(b6);

		b1 = new Button("1");
		b1.setLocation(20, 170);
		b1.addKeyListener(this);
		window.add(b1);

		b2 = new Button("2");
		b2.setLocation(50, 160);
		b2.addKeyListener(this);
		window.add(b2);

		b3 = new Button("3");
		b3.setLocation(80, 170);
		b3.addKeyListener(this);
		window.add(b3);

		b0 = new Button("0");
		b0.setLocation(50, 190);
		b0.addKeyListener(this);
		window.add(b0);

		/**
		 * erstellt die Operator-Buttons (C, +, -, *, /, =, .) des
		 * Taschenrechners
		 */
		bclear = new Button("C");
		bclear.setLocation(115, 70);
		window.add(bclear);

		bplus = new Button("+");
		bplus.setLocation(115, 190);
		window.add(bplus);

		bminus = new Button("-");
		bminus.setLocation(115, 130);
		window.add(bminus);

		bpunkt = new Button(".");
		bpunkt.setLocation(20, 220);
		window.add(bpunkt);

		bgleich = new Button("=");
		bgleich.setLocation(52, 220);
		window.add(bgleich);

		bmal = new Button("*");
		bmal.setLocation(115, 160);
		window.add(bmal);

		bgeteilt = new Button("/");
		bgeteilt.setLocation(115, 100);
		window.add(bgeteilt);

		/**
		 * Actionlistener
		 */

		b9.addActionListener(this);
		b8.addActionListener(this);
		b7.addActionListener(this);
		b6.addActionListener(this);
		b5.addActionListener(this);
		b4.addActionListener(this);
		b3.addActionListener(this);
		b2.addActionListener(this);
		b1.addActionListener(this);
		b0.addActionListener(this);
		bgeteilt.addActionListener(this);
		bmal.addActionListener(this);
		bgleich.addActionListener(this);
		bpunkt.addActionListener(this);
		bminus.addActionListener(this);
		bplus.addActionListener(this);
		bclear.addActionListener(this);

		/**
		 * Größe der Buttons
		 */

		b9.setSize(30, 25);
		b8.setSize(30, 25);
		b7.setSize(30, 25);
		b6.setSize(30, 25);
		b5.setSize(30, 25);
		b4.setSize(30, 25);
		b3.setSize(30, 25);
		b2.setSize(30, 25);
		b1.setSize(30, 25);
		b0.setSize(30, 25);
		bgeteilt.setSize(30, 25);
		bmal.setSize(30, 25);
		bgleich.setSize(60, 25);
		bpunkt.setSize(30, 25);
		bminus.setSize(30, 25);
		bplus.setSize(30, 55);
		bclear.setSize(20, 15);

		/**
		 * Farbe der Buttons
		 */
		b9.setBackground(Color.white);
		b8.setBackground(Color.white);
		b7.setBackground(Color.white);
		b6.setBackground(Color.white);
		b5.setBackground(Color.white);
		b4.setBackground(Color.white);
		b3.setBackground(Color.white);
		b2.setBackground(Color.white);
		b1.setBackground(Color.white);
		b0.setBackground(Color.white);
		bclear.setBackground(Color.red);
		bgeteilt.setBackground(Color.red);
		bmal.setBackground(Color.red);
		bgleich.setBackground(Color.red);
		bpunkt.setBackground(Color.red);
		bminus.setBackground(Color.red);
		bplus.setBackground(Color.red);

		/**
		 * macht die Oberfläche des Taschenrechners sichtbar
		 */
		l1 = new Label("");
		window.add(l1);
		window.setVisible(true);
	}//Ende Taschenrechner

	/**
	 * Wird aufgerufen, wenn das Fenster geschlossen wird
	 */
	public void windowClosing(WindowEvent e) {
		System.exit(0);
	}

	/**
	 * Wird aufgerufen, wenn das Fenster aktiviert wird
	 */
	public void windowActivated(WindowEvent e) {}

	/**
	 * Wird aufgerufen, wenn das Fenster mit dispose() geschlossen wurde
	 */
	public void windowClosed(WindowEvent e) {}

	/**
	 * Wird aufgerufen, wenn das Fenster deaktiviert wird
	 */
	public void windowDeactivated(WindowEvent e) {}

	/**
	 * Wird aufgerufen, wenn das Fenster wieder hochgeholt wird
	 */
	public void windowDeiconified(WindowEvent e) {}

	/**
	 * Wird aufgerufen, wenn das Fenster zum Icon verkleinert wird
	 */
	public void windowIconified(WindowEvent e) {}

	/**
	 * Wird aufgerufen, wenn Fenster geöffnet wurde
	 */
	public void windowOpened(WindowEvent e) {}

	/**
	 * Erkennung von Eingaben
	 */
	public void actionPerformed(ActionEvent ea) {
		int h;
		String inh = new String();

		String but = ea.getActionCommand();
		if(but == "0") {
			ziffer("0");
		}
		else if(but == "1") {
			ziffer("1");
		}
		else if(but == "2") {
			ziffer("2");
		}
		else if(but == "3") {
			ziffer("3");
		}
		else if(but == "4") {
			ziffer("4");
		}
		else if(but == "5") {
			ziffer("5");
		}
		else if(but == "6") {
			ziffer("6");
		}
		else if(but == "7") {
			ziffer("7");
		}
		else if(but == "8") {
			ziffer("8");
		}
		else if(but == "9") {
			ziffer("9");
		}
		else if(but == "+") {
			verkn("+");
		}
		else if(but == "-") {
			verkn("-");
		}
		else if(but == "*") {
			verkn("*");
		}
		else if(but == "/") {
			verkn("/");
		}
		else if(but == ".") {
			if(Rechne) {
				t1.setText("0.");
				Rechne = false;
			}
			else {
				inh = new String(t1.getText());
				h = inh.indexOf(".");
				if(h < 0) {
					t1.setText(t1.getText() + ".");
				}
			}//else
		}
		else if(but == "C") {
			t1.setText("");
			Rechne = true;
			Zahl = 0;
			Operation = "";
		}
		else if(but == "=") {
			verkn("");
		}
	}//Ende actionPerformed

	/**
	 * schreib in Display
	 */
	public void ziffer(String s) {
		if(Rechne) {
			t1.setText(s);
			Rechne = false;
		}
		else {
			String inh = new String(t1.getText());
			/** zähle die Punkte* */
			int h = inh.indexOf(".");
			/** bei 6 ohne punkt oder 25 mit punkt* */
			if(((h < 0) && (inh.length() < 6))
					|| ((h > 0) && (inh.length() < 25)))
				t1.setText(t1.getText() + s);
			else
				return;
		}
	}//Ende ziffer

	/**
	 * durchführung der Rechnung
	 */
	public void verkn(String s) {
		Double wert;
		Rechne = true;
		try {
			if(Operation == "") {
				wert = new Double(t1.getText());
				Zahl = wert.doubleValue();
				Operation = s;
			}
			else {
				wert = new Double(t1.getText());
				if(Operation == "+") {
					Zahl = Zahl + wert.doubleValue();
				}
				else if(Operation == "-") {
					Zahl = Zahl - wert.doubleValue();
				}
				else if(Operation == "*") {
					Zahl = Zahl * wert.doubleValue();
				}
				else if(Operation == "/") {
					Zahl = Zahl / wert.doubleValue();
				}
				Operation = s;
				t1.setText(s.valueOf(Zahl));
			}
		}//try
		catch (ArithmeticException e) {
			t1.setText("Error:" + e);
			ziffer("");
		}
		catch (Throwable e) {
			t1.setText("Fehler:" + e);
			ziffer("");
		}
	}//Ende verkn

	/**
	 * main
	 */
	public static void main(String[] args) {
		Taschenrechner meinFenster = new Taschenrechner();
	}//Ende main

	public void keyPressed(KeyEvent e) {
		switch (e.getKeyCode()) {
			case KeyEvent.VK_NUMPAD0:
			case KeyEvent.VK_NUMPAD1:
			case KeyEvent.VK_NUMPAD2:
			case KeyEvent.VK_NUMPAD3:
			case KeyEvent.VK_NUMPAD4:
			case KeyEvent.VK_NUMPAD5:
			case KeyEvent.VK_NUMPAD6:
			case KeyEvent.VK_NUMPAD7:
			case KeyEvent.VK_NUMPAD8:
			case KeyEvent.VK_NUMPAD9:
				t1.setText(t1.getText() + (e.getKeyCode() - 96));
			break;
		}
	}

	public void keyReleased(KeyEvent e) {}

	public void keyTyped(KeyEvent e) {}
}
den KeyListener musst du hinzufügen, mit addKeyListener();
leider brauchst du den eigentlich überall, und so musst du ihn auch überall hinzufügen, bei den zahlen buttons hab ichs hmal gemacht und beim textfeld auch...
 

abollm

Top Contributor
Noch als Ergänzung bzw. Gimmick:

Wenn du die (per Tastatur) eingegebenen Zahlen über die Tastatur wieder löschen möchtest, musst du dafür in der Methode "keyPressed" entsprechend Sorge tragen.

Hier einmal ein Beispiel, wie man die eingegebenen Zahlen komplett wieder per BACKSPACE-Taste löschen kann:

Code:
	public void keyPressed(KeyEvent e) {
        switch(e.getKeyCode()){
           case KeyEvent.VK_NUMPAD0:
           case KeyEvent.VK_NUMPAD1:
           case KeyEvent.VK_NUMPAD2:
           case KeyEvent.VK_NUMPAD3:
           case KeyEvent.VK_NUMPAD4:
           case KeyEvent.VK_NUMPAD5:
           case KeyEvent.VK_NUMPAD6:
           case KeyEvent.VK_NUMPAD7:
           case KeyEvent.VK_NUMPAD8:
           case KeyEvent.VK_NUMPAD9:
              t1.setText(t1.getText() + (e.getKeyCode() - 96));
              System.out.println(e.getKeyCode()-96);
              break;
           case KeyEvent.VK_BACK_SPACE:
              t1.setText("");
           break;
        }
     }
 
Status
Nicht offen für weitere Antworten.
Ähnliche Java Themen
  Titel Forum Antworten Datum
Ostkreuz Wieso wird die Methode nochmal aufgerufen? Java Basics - Anfänger-Themen 5
E nochmal synchronisierte Methoden Java Basics - Anfänger-Themen 5
J Hinzufügen eines Objekts in eine Liste, um später dann nochmal auf das Objekt zugreifen zu können Java Basics - Anfänger-Themen 8
B Unique ID nochmal Unique machen Java Basics - Anfänger-Themen 20
X Wenn Exception dann nochmal try. Java Basics - Anfänger-Themen 7
R Nochmal Quaxli Spieletutorial ;) Java Basics - Anfänger-Themen 9
V Nochmal Hilfe - Replace Methode Java Basics - Anfänger-Themen 2
T Override klappt nochmal wie? Java Basics - Anfänger-Themen 3
Haubitze_Broese Methode am ende nochmal startet? Java Basics - Anfänger-Themen 8
D Ausgabe sauber formatieren *bitte nochmal reinschaun* Java Basics - Anfänger-Themen 7
D C0 und C1 Test nochmal Java Basics - Anfänger-Themen 9
B könnte nochmal jemand über mein Projekt schauen? Java Basics - Anfänger-Themen 4
C Nochmal zu lokale Einstellungen Java Basics - Anfänger-Themen 2
G nach Thread.start(); nochmal start(); aufrufen geht nicht Java Basics - Anfänger-Themen 4
S Fehler durch Exception beheben und nochmal versuchen Java Basics - Anfänger-Themen 4
U Nochmal was zum Date(); Java Basics - Anfänger-Themen 23
F nochmal Array Declaration Java Basics - Anfänger-Themen 2
G Nochmal vereinfacht - hoffe mer kanns nachvollziehen Java Basics - Anfänger-Themen 9
F Referenz Pointer oder doch nochmal neu suchen ? Java Basics - Anfänger-Themen 2
G Nochmal zweidimensionaler Vector Java Basics - Anfänger-Themen 10
ven000m Char einlesen, wie ging das nochmal? Java Basics - Anfänger-Themen 9
D Nochmal zu den dummen Eingaben über Tastatur Java Basics - Anfänger-Themen 15
B Nochmal ich/ Graphik wird nicht angezeigt ? Java Basics - Anfänger-Themen 12
G Nochmal Problem mit Kommunikation zwischen Klassen Java Basics - Anfänger-Themen 3
B nochmal ich / jdk1.5 Java Basics - Anfänger-Themen 5
B Nochmal NoClassDefFoundError Java Basics - Anfänger-Themen 3
megachucky nochmal JDBC. komme nicht weiter. Java Basics - Anfänger-Themen 4
K nochmal Jtable Java Basics - Anfänger-Themen 5
N Java Taschenrechner hat Jemand vlt einen Tipp dafür wie ich jetzt die buttons verbinden kann und das Ergebnis auf dem textfield anzeigen lassen kann Java Basics - Anfänger-Themen 13
L Taschenrechner Problem Java Basics - Anfänger-Themen 4
J Frage zu einem "Taschenrechner" code Java Basics - Anfänger-Themen 9
R Operatoren Rechenoperation verwenden für Taschenrechner. Java Basics - Anfänger-Themen 32
S while Schleife Taschenrechner Java Basics - Anfänger-Themen 1
J Taschenrechner mit mehr als 2 Zahlen. Java Basics - Anfänger-Themen 18
R Einfacher Taschenrechner mit Eclipse Java Basics - Anfänger-Themen 3
M Einfacher Taschenrechner Java Basics - Anfänger-Themen 2
Fiedelbambu Prüfen von Komma stelle beim Taschenrechner Java Basics - Anfänger-Themen 5
JordenJost Taschenrechner problem Java Basics - Anfänger-Themen 5
Y Taschenrechner programmieren Java Basics - Anfänger-Themen 3
G Taschenrechner ergibt Fehler in if-Abfrage Java Basics - Anfänger-Themen 6
K Erste Schritte "Taschenrechner" zeigt keine Komma Zahlen an. Java Basics - Anfänger-Themen 8
C Potenzberechnung über switch case. Taschenrechner mit Eingabe über einen grafischen Dialog Java Basics - Anfänger-Themen 22
E JavaFX Taschenrechner Eingabe im Textfield beschränken Java Basics - Anfänger-Themen 2
E Taschenrechner GUI Problem mit Fehlerhandling Java Basics - Anfänger-Themen 6
C Taschenrechner (switch) in Taschenrechner mit Methoden umwandeln Java Basics - Anfänger-Themen 115
W Taschenrechner mit Switch case Java Basics - Anfänger-Themen 4
W Taschenrechner Java Basics - Anfänger-Themen 11
A Taschenrechner mit Gui erstellen Java Basics - Anfänger-Themen 9
2 Taschenrechner mit GUI Problem bei der Berechnung Java Basics - Anfänger-Themen 8
P Taschenrechner mit unendlich vielen Eingabemöglichkeiten Java Basics - Anfänger-Themen 1
V Erste Schritte Taschenrechner mit beliebig vielen Zahlen Java Basics - Anfänger-Themen 5
S Taschenrechner Java Basics - Anfänger-Themen 13
P Taschenrechner Text übertragung Java Basics - Anfänger-Themen 3
S Compiler-Fehler Basic- Taschenrechner/ Fehler Java Basics - Anfänger-Themen 8
S Basic- Taschenrechner? Java Basics - Anfänger-Themen 7
P Hilfe bei Java Taschenrechner Java Basics - Anfänger-Themen 25
F Erste Schritte Frage zu simplem Taschenrechner(switch) Java Basics - Anfänger-Themen 16
L Mein Taschenrechner lässt sich plötzlich nicht mehr öffnen Java Basics - Anfänger-Themen 5
S Taschenrechner hilfe! Java Basics - Anfänger-Themen 17
H Java Taschenrechner Java Basics - Anfänger-Themen 4
R Variablen Taschenrechner mit Komfortfunktionen Java Basics - Anfänger-Themen 2
J RPN Taschenrechner - keine Lösung!! Java Basics - Anfänger-Themen 84
M Java Taschenrechner (if-else) Java Basics - Anfänger-Themen 11
L Taschenrechner mit switch und while funktioniert noch nicht richtig Java Basics - Anfänger-Themen 22
Q simpler Taschenrechner Java Basics - Anfänger-Themen 34
R Taschenrechner NullPointerException Java Basics - Anfänger-Themen 1
R Variablen Weitergehenderr Taschenrechner Java Basics - Anfänger-Themen 4
F Taschenrechner "Error loading class..." Java Basics - Anfänger-Themen 5
M Java Taschenrechner Programmieren Java Basics - Anfänger-Themen 12
P Erste Schritte Taschenrechner mit if-else Anweisung Java Basics - Anfänger-Themen 6
G Taschenrechner gibt nur 0.0 aus Java Basics - Anfänger-Themen 8
A Taschenrechner programmieren Java Basics - Anfänger-Themen 21
Z Java Taschenrechner Java Basics - Anfänger-Themen 6
J Kleiner Taschenrechner! Anfänger braucht Hilfe :( Java Basics - Anfänger-Themen 2
C Taschenrechner in Java Java Basics - Anfänger-Themen 6
J Erste Schritte Java CMD Taschenrechner mit Parametern! Java Basics - Anfänger-Themen 16
J Taschenrechner: Probleme Java Basics - Anfänger-Themen 5
E Taschenrechner problem! Ich komme nicht voran Java Basics - Anfänger-Themen 18
R Erste Schritte Taschenrechner mit Schleife Java Basics - Anfänger-Themen 24
Lord.Djerun (Taschenrechner Netbeans) Komma nur einmal schreiben & 0 ersetzen Java Basics - Anfänger-Themen 1
Z Taschenrechner - Additions/Substraktions/Multiplikations/Divionsketten! Java Basics - Anfänger-Themen 4
D Taschenrechner Frage Java Basics - Anfänger-Themen 12
Z Sehr simpler Taschenrechner - Hilfe! Java Basics - Anfänger-Themen 10
Z Taschenrechner - Wie addiere,multipliziere und subtrahiere ich? Java Basics - Anfänger-Themen 6
D kleiner Taschenrechner mit switch fehlerhaft Java Basics - Anfänger-Themen 1
K Taschenrechner im GUI Java Basics - Anfänger-Themen 2
P Taschenrechner, operatoren Java Basics - Anfänger-Themen 4
D Simpler Taschenrechner Java Basics - Anfänger-Themen 6
A Anfänger Taschenrechner Frage Java Basics - Anfänger-Themen 14
R Erste Schritte Taschenrechner - Punkt-vor-Strich Rechnung Java Basics - Anfänger-Themen 1
S Operatoren Taschenrechner Ergebnis ausgeben Java Basics - Anfänger-Themen 7
A Taschenrechner zeigt Error Java Basics - Anfänger-Themen 7
J Taschenrechner Funktion Java Basics - Anfänger-Themen 18
M Taschenrechner fertigstellung Java Basics - Anfänger-Themen 1
N Methoden Taschenrechner Java Basics - Anfänger-Themen 2
F z = input.nextChar(); PROBLEM Taschenrechner Java Basics - Anfänger-Themen 7
J Scanner Taschenrechner? Java Basics - Anfänger-Themen 7
J Variablen Rechenzeichen und Zahlen verknüpfen für einen Taschenrechner Java Basics - Anfänger-Themen 17
B Klassen Java Taschenrechner mit Klassen und Methoden Java Basics - Anfänger-Themen 12
B Erste Schritte Brauche Hilfe bei einem Java-Taschenrechner Java Basics - Anfänger-Themen 11

Ähnliche Java Themen

Neue Themen


Oben