爱问知识人 爱问教育 医院库

怎么用键盘事件实现JAVA编计算?

首页

怎么用键盘事件实现JAVA编计算?

怎么用键盘事件实现JAVA编计算器

提交回答
好评回答
  • 2014-03-30 15:49:01
      额,直更新了,奇怪。待会再发过。。。
    import java。awt。BorderLayout;
    import java。awt。FlowLayout;
    import java。awt。Frame;
    import java。awt。GridLayout;
    import java。
      awt。Panel; import java。awt。TextField; import java。awt。event。ActionEvent; import java。awt。event。ActionListener; import java。
      awt。event。KeyEvent; import java。awt。event。KeyListener; import java。awt。event。WindowAdapter; import java。awt。event。WindowEvent; import javax。
      swing。JButton; public class CalculatorGUI { private Frame f; private Panel p1, p2; private JButton b0, b1, b2, b3, b4, b5, b6, b7, b8, b9; private JButton bPoint, bAdd, bDec, bMul, bDiv, bCal, Bbac, Bce, Bsqr, BZF; private TextField tf; private String s, op; private Calculator cal = new Calculator(); private boolean ifOp; private float Num, Num1, Num2; public CalculatorGUI() { f = new Frame("A Calculator"); p1 = new Panel(); p2 = new Panel(); b0 = new JButton("0"); b1 = new JButton("1"); b2 = new JButton("2"); b3 = new JButton("3"); b4 = new JButton("4"); b5 = new JButton("5"); b6 = new JButton("6"); b7 = new JButton("7"); b8 = new JButton("8"); b9 = new JButton("9"); bPoint = new JButton("。
      "); bAdd = new JButton("+"); bDec = new JButton("-"); bMul = new JButton("*"); bDiv = new JButton("/"); bCal = new JButton("="); Bbac = new JButton("backspace"); Bce = new JButton("CE"); Bsqr = new JButton("sqrt"); BZF = new JButton("+/-"); tf = new TextField(50); } public void launchFrame() { f。
      setSize(400, 210); f。setResizable(false); f。addWindowListener(new myWindowListener()); f。setLayout(new FlowLayout(FlowLayout。
      CENTER)); p1。add(tf); f。add(p1, BorderLayout。NORTH); p2。setLayout(new GridLayout(5, 4)); b0。addActionListener(new setlabeltext_actionlistener()); b1。
      addActionListener(new setlabeltext_actionlistener()); b2。addActionListener(new setlabeltext_actionlistener()); b3。addActionListener(new setlabeltext_actionlistener()); b4。
      addActionListener(new setlabeltext_actionlistener()); b5。addActionListener(new setlabeltext_actionlistener()); b6。addActionListener(new setlabeltext_actionlistener()); b7。
      addActionListener(new setlabeltext_actionlistener()); b8。addActionListener(new setlabeltext_actionlistener()); b9。addActionListener(new setlabeltext_actionlistener()); b0。
      addKeyListener(new KeyBoard()); b1。addKeyListener(new KeyBoard()); b2。addKeyListener(new KeyBoard()); b3。addKeyListener(new KeyBoard()); b4。
      addKeyListener(new KeyBoard()); b5。addKeyListener(new KeyBoard()); b6。addKeyListener(new KeyBoard()); b7。addKeyListener(new KeyBoard()); b8。
      addKeyListener(new KeyBoard()); b9。addKeyListener(new KeyBoard()); Bbac。addActionListener(new setoperator_actionlistener()); bPoint。
      addActionListener(new setlabeltext_actionlistener()); bAdd。addActionListener(new setoperator_actionlistener()); bDec。
      addActionListener(new setoperator_actionlistener()); bMul。addActionListener(new setoperator_actionlistener()); bDiv。
      addActionListener(new setoperator_actionlistener()); bCal。addActionListener(new setoperator_actionlistener()); Bce。
      addActionListener(new setoperator_actionlistener()); Bsqr。addActionListener(new setoperator_actionlistener()); BZF。
      addActionListener(new setoperator_actionlistener()); Bbac。addKeyListener(new KeyBoard()); bPoint。addKeyListener(new KeyBoard()); bAdd。
      addKeyListener(new KeyBoard()); bDec。addKeyListener(new KeyBoard()); bMul。addKeyListener(new KeyBoard()); bDiv。addKeyListener(new KeyBoard()); bCal。
      addKeyListener(new KeyBoard()); Bce。addKeyListener(new KeyBoard()); Bsqr。addKeyListener(new KeyBoard()); BZF。addKeyListener(new KeyBoard()); p2。
      add(b7); p2。add(b8); p2。add(b9); p2。add(bAdd); p2。add(b4); p2。add(b5); p2。add(b6); p2。add(bDec); p2。
      add(b1); p2。add(b2); p2。add(b3); p2。add(bMul); p2。add(b0); p2。add(bPoint); p2。add(bCal); p2。add(bDiv); p2。
      add(Bbac); p2。add(Bce); p2。add(Bsqr); p2。add(BZF); //p2。addKeyListener(new KeyBoard()); f。add(p2, BorderLayout。
      SOUTH); f。addKeyListener(new KeyBoard()); f。setVisible(true); f。setFocusable(true); } class myWindowListener extends WindowAdapter { public void windowClosing(WindowEvent e) { System。
      exit(0); } } class setlabeltext_actionlistener implements ActionListener { public void actionPerformed(ActionEvent e) { JButton tempB = (JButton) e。
      getSource(); s = tempB。getText(); settextfieldtext(); } } class setoperator_actionlistener implements ActionListener { public void actionPerformed(ActionEvent e) { JButton tempB = (JButton) e。
      getSource(); op = tempB。getText(); if (op。equals("+")) { tf。setText(cal。opAdd(tf。getText())); ifOp = true; } else if (op。
      equals("-")) { tf。setText(cal。opSub(tf。getText())); ifOp = true; } else if (op。equals("*")) { tf。setText(cal。
      opmul(tf。getText())); ifOp = true; } else if (op。equals("/")) { tf。setText(cal。opdiv(tf。getText())); ifOp = true; } else if (op。
      equals("CE")) { tf。setText(cal。opce(tf。getText())); } else if (op。equals("=")) { tf。setText(cal。opEquals(tf。
      getText())); ifOp = true; } else if (op。equals("sqrt")) { tf。setText(cal。opsqrt(tf。getText())); ifOp = true; } else if (op。
      equals("+/-")) { tf。setText(cal。opzf(tf。getText())); ifOp = true; } else if (op。equals("backspace")) { tf。
      setText(cal。opbac(tf。getText())); ifOp = false; } } } public void settextfieldtext_temp() { if (tf。getText()。
      length() < 15 && (tf。getText()。indexOf("。") == -1 || !s。equals("。"))) { tf。setText(tf。getText() + s); } else { tf。
      setText((tf。getText() + s)。substring(0, 15)); } } public void settextfieldtext() { if (ifOp) { ifOp = false; tf。
      setText(""); settextfieldtext_temp(); } else { settextfieldtext_temp(); } } class KeyBoard implements KeyListener { char ysf2 = ' ';// 存储运算符 public void keyPressed(KeyEvent ke) { } // 弹起事件 public void keyReleased(KeyEvent ke) { System。
      out。println(ke。getKeyChar()); // 从键盘读入数字 if (ke。getKeyChar() == '0') { b0。doClick(); } if (ke。getKeyChar() == '1') { b1。
      doClick(); } if (ke。getKeyChar() == '2') { b2。doClick(); } if (ke。getKeyChar() == '3') { b3。doClick(); } if (ke。
      getKeyChar() == '4') { b4。doClick(); } if (ke。getKeyChar() == '5') { b5。doClick(); } if (ke。getKeyChar() == '6') { b6。
      doClick(); } if (ke。getKeyChar() == '7') { b7。doClick(); } if (ke。getKeyChar() == '8') { b8。doClick(); } if (ke。
      getKeyChar() == '9') { b9。doClick(); } // 从键盘输入小数点 if (ke。getKeyChar() == '。') bPoint。doClick(); // 加法 if (ke。
      getKeyChar() == '+') { bAdd。doClick(); } // 减法 if (ke。getKeyChar() == '-') { bDec。doClick(); } // 乘法 if (ke。
      getKeyChar() == '*') { bMul。doClick(); } // 除法 if (ke。getKeyChar() == '/') { bDiv。doClick(); } if (ke。
      getKeyChar() == '=') { bCal。doClick(); } if (ke。getKeyChar() == KeyEvent。VK_BACK_SPACE) { Bbac。doClick(); } if (ke。
      getKeyChar() == KeyEvent。VK_ENTER) { bCal。doClick(); } } public void keyTyped(KeyEvent ke) { } } // 按下事件 public static void main(String[] args) { CalculatorGUI calculator = new CalculatorGUI(); calculator。
      launchFrame(); } } 这是我的回答,希望对你有帮助。

    问***

    2014-03-30 15:49:01

类似问题

换一换

相关推荐

正在加载...
最新资料 热点推荐
  • 1-20
  • 21-40
  • 41-60
  • 61-80
  • 81-100
  • 101-120
  • 121-140
  • 141-160
  • 161-180
  • 181-200
  • 1-20
  • 21-40
  • 41-60
  • 61-80
  • 81-100
  • 101-120
  • 121-140
  • 141-160
  • 161-180
  • 181-200

热点检索

  • 1-20
  • 21-40
  • 41-60
  • 61-80
  • 81-100
  • 101-120
  • 121-140
  • 141-160
  • 161-180
  • 178-197
返回
顶部
帮助 意见
反馈

确定举报此问题

举报原因(必选):