⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 keycalculator.java

📁 java程序2.4.2--计算器起步(键盘控制的计算器) 简单的计算机器
💻 JAVA
📖 第 1 页 / 共 2 页
字号:
package keyconculator;

import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
import javax.swing.KeyStroke;

/**
 * <p>Title: </p>
 * <p>Description: </p>
 * <p>Copyright: Copyright (c) 2004</p>
 * <p>Company: </p>
 * @author not attributable
 * @version 1.0
 */

public class KeyCalculator
    extends JFrame
{
  JPanel contentPane;
  JButton jButton1 = new JButton();
  JButton jButton2 = new JButton();
  JButton jButton3 = new JButton();
  JButton jButton4 = new JButton();
  JButton jButton5 = new JButton();
  JButton jButton6 = new JButton();
  JButton jButton7 = new JButton();
  JButton jButton8 = new JButton();
  JButton jButton9 = new JButton();
  JButton jButton10 = new JButton();
  JButton jButton11 = new JButton();
  JButton jButton12 = new JButton();
  JButton jButton13 = new JButton();
  JButton jButton14 = new JButton();
  JButton jButton15 = new JButton();
  JButton jButton16 = new JButton();
  JButton jButton17 = new JButton();
  JButton jButton18 = new JButton();
  JButton jButton19 = new JButton();

  double num1, num2;
  boolean add = false, sub = false, mul = false, div = false;
  boolean end = false; //用来设定数据输入是否结束
  String str;
  JTextField jTextField1 = new JTextField();

  //Construct the frame
  public KeyCalculator()
  {
    enableEvents(AWTEvent.WINDOW_EVENT_MASK);
    try
    {
      jbInit();
    }
    catch (Exception e)
    {
      e.printStackTrace();
    }
  }

  //Component initialization
  private void jbInit() throws Exception
  {
    contentPane = (JPanel)this.getContentPane();
    contentPane.setLayout(null);
    this.setLocale(java.util.Locale.getDefault());
    this.setSize(new Dimension(238, 222));
    this.setTitle("计算器");
    this.addKeyListener(new KeyCalculator_this_keyAdapter(this));
    jButton1.setBounds(new Rectangle(18, 71, 41, 25));
    jButton1.setText("9");
    jButton1.addActionListener(new KeyCalculator_jButton1_actionAdapter(this));
    jButton2.setBounds(new Rectangle(68, 71, 41, 25));
    jButton2.setText("8");
    jButton2.addActionListener(new KeyCalculator_jButton2_actionAdapter(this));
    jButton3.setBounds(new Rectangle(118, 71, 41, 25));
    jButton3.setText("7");
    jButton3.addActionListener(new KeyCalculator_jButton3_actionAdapter(this));
    jButton4.setBounds(new Rectangle(168, 168, 45, 25));
    jButton4.setToolTipText("");
    jButton4.setText("+");
    jButton4.addActionListener(new KeyCalculator_jButton4_actionAdapter(this));
    jButton5.setBounds(new Rectangle(18, 103, 41, 25));
    jButton5.setText("6");
    jButton5.addActionListener(new KeyCalculator_jButton5_actionAdapter(this));
    jButton6.setBounds(new Rectangle(68, 103, 41, 25));
    jButton6.setFont(new java.awt.Font("Dialog", 0, 11));
    jButton6.setText("5");
    jButton6.addActionListener(new KeyCalculator_jButton6_actionAdapter(this));
    jButton7.setBounds(new Rectangle(118, 103, 41, 25));
    jButton7.setForeground(Color.black);
    jButton7.setText("4");
    jButton7.addActionListener(new KeyCalculator_jButton7_actionAdapter(this));
    jButton8.setBounds(new Rectangle(168, 136, 45, 25));
    jButton8.setText("-");
    jButton8.addActionListener(new KeyCalculator_jButton8_actionAdapter(this));
    jButton9.setBounds(new Rectangle(18, 136, 41, 25));
    jButton9.setHorizontalAlignment(SwingConstants.CENTER);
    jButton9.setText("3");
    jButton9.addActionListener(new KeyCalculator_jButton9_actionAdapter(this));
    jButton10.setBounds(new Rectangle(68, 136, 41, 25));
    jButton10.setText("2");
    jButton10.addActionListener(new KeyCalculator_jButton10_actionAdapter(this));
    jButton11.setBounds(new Rectangle(118, 136, 41, 25));
    jButton11.setForeground(Color.black);
    jButton11.setText("1");
    jButton11.addActionListener(new KeyCalculator_jButton11_actionAdapter(this));
    jButton12.setBounds(new Rectangle(168, 103, 45, 25));
    jButton12.setVerifyInputWhenFocusTarget(true);
    jButton12.setText("×");
    jButton12.addActionListener(new KeyCalculator_jButton12_actionAdapter(this));
    jButton13.setBounds(new Rectangle(18, 168, 41, 25));
    jButton13.setToolTipText("");
    jButton13.setText("0");
    jButton13.addActionListener(new KeyCalculator_jButton13_actionAdapter(this));
    jButton14.setBounds(new Rectangle(68, 168, 41, 25));
    jButton14.setToolTipText("");
    jButton14.setText("-");
    jButton14.addActionListener(new KeyCalculator_jButton14_actionAdapter(this));
    jButton15.setBounds(new Rectangle(118, 168, 41, 25));
    jButton15.setToolTipText("");
    jButton15.setText(".");
    jButton15.addActionListener(new KeyCalculator_jButton15_actionAdapter(this));
    jButton16.setBounds(new Rectangle(168, 71, 45, 25));
    jButton16.setText("/");
    jButton16.addActionListener(new KeyCalculator_jButton16_actionAdapter(this));
    jButton17.setBounds(new Rectangle(18, 39, 57, 25));
    jButton17.setSelected(false);
    jButton17.setText("清零");
    jButton17.addActionListener(new KeyCalculator_jButton17_actionAdapter(this));
    jButton18.setBounds(new Rectangle(88, 39, 68, 25));
    jButton18.setVerifyInputWhenFocusTarget(true);
    jButton18.setText("重置");
    jButton18.addActionListener(new KeyCalculator_jButton18_actionAdapter(this));
    jButton19.setBounds(new Rectangle(168, 39, 45, 25));
    jButton19.setText("=");
    jButton19.addActionListener(new KeyCalculator_jButton19_actionAdapter(this));
    jTextField1.setText("0");
    jTextField1.setBounds(new Rectangle(18, 12, 195, 21));
    contentPane.setForeground(Color.black);
    contentPane.add(jButton2, null);
    contentPane.add(jTextField1, null);
    contentPane.add(jButton17, null);
    contentPane.add(jButton18, null);
    contentPane.add(jButton19, null);
    contentPane.add(jButton3, null);
    contentPane.add(jButton1, null);
    contentPane.add(jButton5, null);
    contentPane.add(jButton9, null);
    contentPane.add(jButton13, null);
    contentPane.add(jButton14, null);
    contentPane.add(jButton10, null);
    contentPane.add(jButton6, null);
    contentPane.add(jButton7, null);
    contentPane.add(jButton11, null);
    contentPane.add(jButton15, null);
    contentPane.add(jButton4, null);
    contentPane.add(jButton16, null);
    contentPane.add(jButton8, null);
    contentPane.add(jButton12, null);
  }

  //Overridden so we can exit when window is closed
  protected void processWindowEvent(WindowEvent e)
  {
    super.processWindowEvent(e);
    if (e.getID() == WindowEvent.WINDOW_CLOSING)
    {
      System.exit(0);
    }
  }

  void number(int i)
  {
    String s = null;
    s = String.valueOf(i);
    if (end)
    {
      jTextField1.setText("0");
      end = false;
    }
    if ( (jTextField1.getText()).equals("0"))
    {
      jTextField1.setText(s);
    }
    else
    {
      str = jTextField1.getText() + s;
      jTextField1.setText(str);
    }
    this.requestFocus(true); //使面板获得焦点
  }

  void sign(int s)
  {
    if (s == 1)
    {
      add = true;
      sub = false;
      mul = false;
      div = false;
    }
    else if (s == 2)
    {
      add = false;
      sub = true;
      mul = false;
      div = false;
    }
    else if (s == 3)
    {
      add = false;
      sub = false;
      mul = true;
      div = false;
    }
    else
    {
      add = false;
      sub = false;
      mul = false;
      div = true;
    }
    num1 = Double.parseDouble(jTextField1.getText());
    end = true;
    this.requestFocus(true); //使面板获得焦点
  }

  void jButton18_actionPerformed(ActionEvent e)
  {
    jTextField1.setText("0");
    end = false;
    add = false;
    sub = false;
    mul = false;
    div = false;
    this.requestFocus(true);
  }

  void jButton1_actionPerformed(ActionEvent e)
  {
    number(9);
  }

  void jButton2_actionPerformed(ActionEvent e)
  {
    number(8);
  }

  void jButton3_actionPerformed(ActionEvent e)
  {
    number(7);
  }

  void jButton5_actionPerformed(ActionEvent e)
  {
    number(6);
  }

  void jButton6_actionPerformed(ActionEvent e)
  {
    number(5);
  }

  void jButton7_actionPerformed(ActionEvent e)
  {
    number(4);
  }

  void jButton9_actionPerformed(ActionEvent e)
  {
    number(3);
  }

  void jButton10_actionPerformed(ActionEvent e)
  {
    number(2);
  }

  void jButton11_actionPerformed(ActionEvent e)
  {
    number(1);
  }

  void jButton13_actionPerformed(ActionEvent e)
  {
    number(0);
  }

  void jButton15_actionPerformed(ActionEvent e)
  {
    str = jTextField1.getText();
    if (str.indexOf(".") <= 1)
    {
      str += ".";
      jTextField1.setText(str);
    }
    this.requestFocus(true);
  }

  void jButton16_actionPerformed(ActionEvent e)
  {
    sign(4);
  }

  void jButton12_actionPerformed(ActionEvent e)
  {
    sign(3);
  }

  void jButton8_actionPerformed(ActionEvent e)
  {
    sign(2);
  }

  void jButton4_actionPerformed(ActionEvent e)
  {
    sign(1);
  }

  void jButton19_actionPerformed(ActionEvent e)
  {
    num2 = Double.parseDouble(jTextField1.getText());
    if (add)
    {
      num1 = num1 + num2;
    }
    else if (sub)
    {
      num1 = num1 - num2;
    }
    else if (mul)
    {
      num1 = num1 * num2;
    }
    else if (div)
    {
      num1 = num1 / num2;
    }
    jTextField1.setText(String.valueOf(num1));
    end = true;
    this.requestFocus(true);
  }

  void jButton14_actionPerformed(ActionEvent e)
  {
    if (end)
    {
      end = false;
      jTextField1.setText("-");
    }
    this.requestFocus(true);
  }

  void jButton17_actionPerformed(ActionEvent e)
  {
    jTextField1.setText("0");
    this.requestFocus(true);
  }

  public boolean isFocusTraversable()
  {
    /**@todo Override this java.awt.Component method*/
    return true;
  }

  void this_keyPressed(KeyEvent e)
  {
    int kc = e.getKeyCode();
    switch (kc)
    {
      case 48:
      case 96:
        number(0);
        break; //表示数字键“0”
      case 49:
      case 97:
        number(1);
        break; //表示数字键“1”
      case 50:
      case 98:
        number(2);
        break; //表示数字键“2”
      case 51:
      case 99:
        number(3);
        break; //表示数字键“3”
      case 52:
      case 100:
        number(4);

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -