简单计算器-功能实现

来源:互联网 发布:plsql怎么导出表数据 编辑:程序博客网 时间:2024/05/21 10:42





import java.awt.event.WindowAdapter;import java.awt.event.WindowEvent;import javax.swing.JFrame;public class BaseFrame extends JFrame{public BaseFrame (String title){setLayout(null);setTitle(title);setSize(800,800);this.addWindowListener(new WindowAdapter() {public void windowClosing(WindowEvent e) {System.exit(0);}});//关闭窗口的匿名类setDefaultCloseOperation(DO_NOTHING_ON_CLOSE);}public void showMe(){setVisible(true);}}



import java.awt.Dimension;import java.awt.GridLayout;import java.awt.event.*;//btn[0].setText("1");//btn[1].setText("2");//btn[2].setText("3");//btn[3].setText("+");//btn[4].setText("4");//btn[5].setText("5");//btn[6].setText("6");//btn[7].setText("-");//btn[8].setText("7");//btn[9].setText("8");//btn[10].setText("9");//btn[11].setText("*");//btn[12].setText("0");//btn[13].setText(".");//btn[14].setText("=");//btn[15].setText("/");import javax.swing.*;public class Calc implements ActionListener { JTextField t1=new JTextField();public Calc(){BaseFrame f=new BaseFrame("hello");JPanel j1=new JPanel();JPanel j2=new JPanel();j1.setSize(800,100);j2.setBounds( 0,100, 800, 700);j1.setLayout(new GridLayout(1,1));j1.add(t1);j2.setLayout(new GridLayout(4,4));final String[] str = {  "1", "2", "3", "+","4", "5", "6", "-", "7", "8", "9","*", "0", ".","=","/" };int n=16;JButton[] btn=new JButton[n];for(int i=0;i<n;i++){btn[i]=new JButton(str[i]);btn[i].setPreferredSize(new Dimension(50,50));j2.add(btn[i]);}f.add(j1);f.add(j2);f.showMe();t1.addActionListener(this); for (int i = 0; i < str.length; i++)       btn[i].addActionListener(this); }       boolean FIRDT = true;    double number = 0;    String operator = "="; public void actionPerformed(ActionEvent e) {       String t = e.getActionCommand();      if ("0123456789.".indexOf(t) != -1)           calcNumber(t);       else           handleOperator(t);    } public void calcNumber(String key) {       if (FIRDT)           t1.setText(key);       else if ((key.equals(".")) && (t1.getText().indexOf(".") !=-1))           t1.setText(t1.getText() + ".");       else if (!key.equals("."))           t1.setText(t1.getText() + key);       FIRDT = false;    } public void handleOperator(String key) {       if (operator.equals("+"))           number += Double.valueOf(t1.getText());       else if (operator.equals("-"))           number -= Double.valueOf(t1.getText());       else if (operator.equals("*"))           number *= Double.valueOf(t1.getText());       else if (operator.equals("/"))           number /= Double.valueOf(t1.getText());       else if (operator.equals("="))           number = Double.valueOf(t1.getText());       t1.setText(String.valueOf(number));       operator = key;       FIRDT = true;    }public static void main(String[] args) {new Calc();}}



1 0