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

📄 calculatorframe.java

📁 JAVA程序设计与实践.rar
💻 JAVA
字号:
/*
 *文件名:calculatorFrame.java
 *说  明:calculator的主实现类
 */
package calculator;

import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
// 这里引用到了第三方的包com.borland.dbswing
import com.borland.dbswing.*;

public class calculatorFrame extends JFrame {
  JPanel contentPane;
  GridBagLayout gridBagLayout1 = new GridBagLayout();
  JTextField jTextField1 = new JTextField();
  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();
  ButtonGroup buttonGroup1 = new ButtonGroup();
  JRadioButton jRadioButton1 = new JRadioButton();
  JRadioButton jRadioButton2 = new JRadioButton();
  JRadioButton jRadioButton3 = new JRadioButton();
  JRadioButton jRadioButton4 = new JRadioButton();
  JButton jButton15 = new JButton();
  JButton jButton16 = new JButton();
  JButton jButton17 = new JButton();
 //定义变量,初始化
  double startnum;//存储第一个输入数
  double endnum;//存储第二个输入数
  boolean isResult = false;//数据输入是否结束
  boolean flagAdd = false;//加运算
  boolean flagSub = false;//减运算
  boolean flagMul = false;//剩运算
  boolean flagDiv = false;//除运算
  String strValue = null;//一个需要的字符串变量
  //构造方法
  public calculatorFrame() {
    enableEvents(AWTEvent.WINDOW_EVENT_MASK);
    try {
      jbInit();
    }
    catch(Exception e) {
      e.printStackTrace();
    }
  }
  //初始化成员
  private void jbInit() throws Exception  {
    contentPane = (JPanel) this.getContentPane();
    contentPane.setLayout(gridBagLayout1);
    this.setSize(new Dimension(348, 223));
    this.setTitle("Calculator Frame Demo");
    jButton1.setText("1");
    jButton1.addActionListener(new java.awt.event.ActionListener() {
      public void actionPerformed(ActionEvent e) {
        jButton1_actionPerformed(e);
      }
    });
    jButton2.setText("2");
    jButton2.addActionListener(new java.awt.event.ActionListener() {
      public void actionPerformed(ActionEvent e) {
        jButton1_actionPerformed(e);
      }
    });
    jButton3.setText("3");
    jButton3.addActionListener(new java.awt.event.ActionListener() {
      public void actionPerformed(ActionEvent e) {
        jButton1_actionPerformed(e);
      }
    });
    jButton4.setText("4");
    jButton4.addActionListener(new java.awt.event.ActionListener() {
      public void actionPerformed(ActionEvent e) {
        jButton1_actionPerformed(e);
      }
    });
    jButton5.setText("5");
    jButton5.addActionListener(new java.awt.event.ActionListener() {
      public void actionPerformed(ActionEvent e) {
        jButton1_actionPerformed(e);
      }
    });
    jButton6.setText("6");
    jButton6.addActionListener(new java.awt.event.ActionListener() {
      public void actionPerformed(ActionEvent e) {
        jButton1_actionPerformed(e);
      }
    });
    jButton7.setText("7");
    jButton7.addActionListener(new java.awt.event.ActionListener() {
      public void actionPerformed(ActionEvent e) {
        jButton1_actionPerformed(e);
      }
    });
    jButton8.setText("8");
    jButton8.addActionListener(new java.awt.event.ActionListener() {
      public void actionPerformed(ActionEvent e) {
        jButton1_actionPerformed(e);
      }
    });
    jButton9.setText("9");
    jButton9.addActionListener(new java.awt.event.ActionListener() {
      public void actionPerformed(ActionEvent e) {
        jButton1_actionPerformed(e);
      }
    });
    jButton10.setText("0");
    jButton10.addActionListener(new java.awt.event.ActionListener() {
      public void actionPerformed(ActionEvent e) {
        jButton1_actionPerformed(e);
      }
    });
    jButton11.setText(".");
    jButton11.addActionListener(new java.awt.event.ActionListener() {
      public void actionPerformed(ActionEvent e) {
        jButton11_actionPerformed(e);
      }
    });
    jButton12.setText("=");
    jButton12.addActionListener(new java.awt.event.ActionListener() {
      public void actionPerformed(ActionEvent e) {
        jButton12_actionPerformed(e);
      }
    });
    jButton13.setText("重置");
    jButton13.addActionListener(new java.awt.event.ActionListener() {
      public void actionPerformed(ActionEvent e) {
        jButton13_actionPerformed(e);
      }
    });
    jTextField1.setColumns(10);
//    jComboBox1.setEditable(false);
    jButton14.setText("清除");
    jButton14.addActionListener(new java.awt.event.ActionListener() {
      public void actionPerformed(ActionEvent e) {
        jButton14_actionPerformed(e);
      }
    });
    jRadioButton1.setText("+");
    jRadioButton1.addActionListener(new java.awt.event.ActionListener() {
      public void actionPerformed(ActionEvent e) {
        jRadioButton1_actionPerformed(e);
      }
    });
    jRadioButton2.setText("-");
    jRadioButton2.addActionListener(new java.awt.event.ActionListener() {
      public void actionPerformed(ActionEvent e) {
        jRadioButton2_actionPerformed(e);
      }
    });
    jRadioButton3.setText("*");
    jRadioButton3.addActionListener(new java.awt.event.ActionListener() {
      public void actionPerformed(ActionEvent e) {
        jRadioButton3_actionPerformed(e);
      }
    });
    jRadioButton4.setText("/");
    jRadioButton4.addActionListener(new java.awt.event.ActionListener() {
      public void actionPerformed(ActionEvent e) {
        jRadioButton4_actionPerformed(e);
      }
    });
    jButton15.setText("sin");
    jButton15.addActionListener(new java.awt.event.ActionListener() {
      public void actionPerformed(ActionEvent e) {
        jButton15_actionPerformed(e);
      }
    });
    jButton16.setText("cos");
    jButton16.addActionListener(new java.awt.event.ActionListener() {
      public void actionPerformed(ActionEvent e) {
        jButton16_actionPerformed(e);
      }
    });
    jButton17.setText("n!");
    jButton17.addActionListener(new java.awt.event.ActionListener() {
      public void actionPerformed(ActionEvent e) {
        jButton17_actionPerformed(e);
      }
    });
    contentPane.add(jButton1,   new GridBagConstraints(0, 1, 1, 1, 0.0, 0.0
            ,GridBagConstraints.CENTER, GridBagConstraints.NONE, new Insets(0, 0, 0, 0), 0, 0));
    contentPane.add(jButton2,  new GridBagConstraints(1, 1, 1, 1, 0.0, 0.0
            ,GridBagConstraints.CENTER, GridBagConstraints.NONE, new Insets(0, 0, 0, 0), 0, 0));
    contentPane.add(jButton3,  new GridBagConstraints(2, 1, 1, 1, 0.0, 0.0
            ,GridBagConstraints.CENTER, GridBagConstraints.NONE, new Insets(0, 0, 0, 0), 0, 0));
    contentPane.add(jButton4,  new GridBagConstraints(0, 2, 1, 1, 0.0, 0.0
            ,GridBagConstraints.CENTER, GridBagConstraints.NONE, new Insets(0, 0, 0, 0), 0, 0));
    contentPane.add(jButton5,  new GridBagConstraints(1, 2, 1, 1, 0.0, 0.0
            ,GridBagConstraints.CENTER, GridBagConstraints.NONE, new Insets(0, 0, 0, 0), 0, 0));
    contentPane.add(jButton6,  new GridBagConstraints(2, 2, 1, 1, 0.0, 0.0
            ,GridBagConstraints.CENTER, GridBagConstraints.NONE, new Insets(0, 0, 0, 0), 0, 0));
    contentPane.add(jButton7,  new GridBagConstraints(0, 3, 1, 1, 0.0, 0.0
            ,GridBagConstraints.CENTER, GridBagConstraints.NONE, new Insets(0, 0, 0, 0), 0, 0));
    contentPane.add(jButton8,  new GridBagConstraints(1, 3, 1, 1, 0.0, 0.0
            ,GridBagConstraints.CENTER, GridBagConstraints.NONE, new Insets(0, 0, 0, 0), 0, 0));
    contentPane.add(jButton9,  new GridBagConstraints(2, 3, 1, 1, 0.0, 0.0
            ,GridBagConstraints.CENTER, GridBagConstraints.NONE, new Insets(0, 0, 0, 0), 0, 0));
    contentPane.add(jButton10,  new GridBagConstraints(0, 4, 1, 1, 0.0, 0.0
            ,GridBagConstraints.CENTER, GridBagConstraints.NONE, new Insets(0, 0, 0, 0), 0, 0));
    contentPane.add(jTextField1,                          new GridBagConstraints(0, 0, 5, 1, 0.0, 0.0
            ,GridBagConstraints.SOUTHEAST, GridBagConstraints.NONE, new Insets(0, 2, 0, 0), 133, 0));
    contentPane.add(jButton11, new GridBagConstraints(1, 4, 1, 1, 0.0, 0.0
            ,GridBagConstraints.CENTER, GridBagConstraints.NONE, new Insets(0, 0, 0, 0), 0, 0));
    contentPane.add(jButton12, new GridBagConstraints(2, 4, 1, 1, 0.0, 0.0
            ,GridBagConstraints.CENTER, GridBagConstraints.NONE, new Insets(0, 0, 0, 0), 0, 0));
    contentPane.add(jButton13, new GridBagConstraints(0, 5, 1, 1, 0.0, 0.0
            ,GridBagConstraints.CENTER, GridBagConstraints.NONE, new Insets(0, 0, 0, 0), 0, 0));
    contentPane.add(jButton14,  new GridBagConstraints(2, 5, 1, 1, 0.0, 0.0
            ,GridBagConstraints.CENTER, GridBagConstraints.NONE, new Insets(0, 0, 0, 0), 0, 0));
    contentPane.add(jRadioButton1,  new GridBagConstraints(3, 1, 1, 1, 0.0, 0.0
            ,GridBagConstraints.CENTER, GridBagConstraints.NONE, new Insets(0, 0, 0, 0), 0, 0));
    contentPane.add(jRadioButton2,  new GridBagConstraints(3, 2, 1, 1, 0.0, 0.0
            ,GridBagConstraints.CENTER, GridBagConstraints.NONE, new Insets(0, 0, 0, 0), 0, 0));
    contentPane.add(jRadioButton3,  new GridBagConstraints(3, 3, 1, 1, 0.0, 0.0
            ,GridBagConstraints.CENTER, GridBagConstraints.NONE, new Insets(0, 0, 0, 0), 0, 0));
    contentPane.add(jRadioButton4,  new GridBagConstraints(3, 4, 1, 1, 0.0, 0.0
            ,GridBagConstraints.CENTER, GridBagConstraints.NONE, new Insets(0, 0, 0, 0), 0, 0));
    contentPane.add(jButton15,  new GridBagConstraints(4, 1, 1, 1, 0.0, 0.0
            ,GridBagConstraints.CENTER, GridBagConstraints.NONE, new Insets(0, 0, 0, 0), 0, 0));
    contentPane.add(jButton16,  new GridBagConstraints(4, 2, 1, 1, 0.0, 0.0
            ,GridBagConstraints.CENTER, GridBagConstraints.NONE, new Insets(0, 0, 0, 0), 0, 0));
    contentPane.add(jButton17,  new GridBagConstraints(4, 3, 1, 1, 0.0, 0.0
            ,GridBagConstraints.CENTER, GridBagConstraints.NONE, new Insets(0, 0, 0, 0), 0, 0));
    buttonGroup1.add(jRadioButton1);
    buttonGroup1.add(jRadioButton2);
    buttonGroup1.add(jRadioButton3);
    buttonGroup1.add(jRadioButton4);
  }
  //窗口事件监听器
  protected void processWindowEvent(WindowEvent e) {
    super.processWindowEvent(e);
    if (e.getID() == WindowEvent.WINDOW_CLOSING) {
      System.exit(0);
    }
  }

  void jButton1_actionPerformed(ActionEvent e) {
      if (isResult){//若为结果数据,则清零
        jTextField1.setText("0");
        isResult = !isResult;
      }
      strValue = jTextField1.getText();
      if (strValue.equals("0")){
        //若初始字符串为0,则覆盖该字符串
        jTextField1.setText(e.getActionCommand());
      }
      else{//否则,在字符串后面追加字符
        strValue=strValue+e.getActionCommand();
        jTextField1.setText(strValue);
      }
  }

  void jButton11_actionPerformed(ActionEvent e) {
    //输入小数点
     strValue = jTextField1.getText();
    if(strValue.indexOf(".")<=1) {//若还没有使用了小数点,则加入小数点
       strValue=strValue+".";
       jTextField1.setText(strValue);
     }
  }

  void jButton12_actionPerformed(ActionEvent e) {
         //执行加减乘除操作
         endnum = Double.parseDouble(jTextField1.getText());
         //得到第二个数
        if(flagAdd){//处理加法
              jTextField1.setText(String.valueOf(startnum+endnum));
              isResult = true;
              flagAdd = !flagAdd;
        }
        if(flagSub){//处理减法
          jTextField1.setText(String.valueOf(startnum-endnum));
          isResult = true;
          flagSub = !flagSub;
        }
        if(flagMul){//处理乘法
          jTextField1.setText(String.valueOf(startnum*endnum));
          isResult = true;
          flagMul = !flagMul;
        }
        if((flagDiv)&&(endnum!=0)){//处理除法
          jTextField1.setText(String.valueOf(startnum/endnum));
          isResult = true;
          flagDiv = !flagDiv;
        }

  }


  void jButton15_actionPerformed(ActionEvent e) {
       startnum = Double.parseDouble(jTextField1.getText());//得到操作数
       jTextField1.setText(String.valueOf(Math.sin(startnum)));//求Sin值
       isResult = true;
  }

  void jButton16_actionPerformed(ActionEvent e) {
       startnum = Double.parseDouble(jTextField1.getText());//得到操作数
       jTextField1.setText(String.valueOf(Math.cos(startnum)));//求Cos值
       isResult = true;
  }

  void jButton17_actionPerformed(ActionEvent e) {
        int Mull = 1;
        if(((jTextField1.getText()).indexOf(".")<1)//若没有小数点,即为整数
             &&(Integer.parseInt(jTextField1.getText())>0))//而且该整数大于零时,求阶乘
          {
           int x = Integer.parseInt(jTextField1.getText());
           for(int i=1;i<=x;i++){
              Mull = Mull*i;
           }
         jTextField1.setText(String.valueOf(Mull));//将结果送入文本框
         }
       isResult = true;
  }

  void jButton14_actionPerformed(ActionEvent e) {
        //回退字符
        String str=jTextField1.getText();//得到文本框的字符串
        int length=str.length();//得到字符串长度
        if(!str.equals(""))//若字符串不为空
               jTextField1.setText(str.substring(0,length-1));//回退一个字符
   }

  void jButton13_actionPerformed(ActionEvent e) {
        jTextField1.setText("");//清空文本框
        isResult = true;

  }

  void jRadioButton1_actionPerformed(ActionEvent e) {
      //存储第一个数,并设置flagAdd为真
      startnum = Double.parseDouble(jTextField1.getText());
      flagAdd=true;
      isResult = true;
  }

  void jRadioButton2_actionPerformed(ActionEvent e) {
      //存储第一个数,并设置flagSub为真
      startnum = Double.parseDouble(jTextField1.getText());
        flagSub = true;
      isResult = true;
  }

  void jRadioButton3_actionPerformed(ActionEvent e) {
      //存储第一个数,并设置flagMul为真
      startnum = Double.parseDouble(jTextField1.getText());
       flagMul = true;
      isResult = true;
  }

  void jRadioButton4_actionPerformed(ActionEvent e) {
      //存储第一个数,并设置flagDiv为真
      startnum = Double.parseDouble(jTextField1.getText());
      flagDiv = true;
      isResult = true;
  }
}

⌨️ 快捷键说明

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