JAVA作业简易计算器

工程名随意,文件名必须为Jisuanqi.java

View Code
import java.awt.BorderLayout;
import java.awt.Color;
import java.awt.GridLayout;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JOptionPane;
import javax.swing.JPanel;
import javax.swing.JTextField;
import javax.swing.border.TitledBorder;

public class Jisuanqi extends JFrame implements ActionListener{
    private JTextField reasult;
    private JButton btn1,btn2,btn3,btn4,btn5,btn6,btn7,btn8,btn9,btn0,
                btnAC,btnAdd,btnSub,btnReasult,btnD,
                btnAbout,btnCancel;
    private boolean add,sub,end,s,c;
    private String str;
    private double num1,num2;
    public Jisuanqi(){
        JPanel p1=new JPanel();
        JPanel p2=new JPanel();
        JPanel p3=new JPanel();
        TitledBorder tb=new TitledBorder("OutPut");tb.setTitleColor(Color.YELLOW);
    
        btnAbout=new JButton("Producer");
        btnCancel=new JButton("Close");
        btnCancel.addActionListener(new ActionListener(){
            public void actionPerformed(ActionEvent ee){
                System.exit(0);
            }
        });
        btnAbout.addActionListener(new ActionListener(){
            public void actionPerformed(ActionEvent ee){
                JOptionPane.showMessageDialog(null, "刘道广", "制作人",JOptionPane.INFORMATION_MESSAGE);
            }
        });
        p3.add(btnAbout);
        p3.add(btnCancel);
        
        reasult = new JTextField("0",20);
        reasult.setEditable(false);
        reasult.setHorizontalAlignment(JTextField.RIGHT);
        reasult.setForeground(Color.BLUE);
        
        p1.setBorder(tb);
        p1.add(reasult);
        btn0=new JButton("0"); btn0.addActionListener(this);
        btn1=new JButton("1");   btn1.addActionListener(this);
        btn2=new JButton("2");   btn2.addActionListener(this);
        btn3=new JButton("3");   btn3.addActionListener(this); 
        btn4=new JButton("4");   btn4.addActionListener(this);
        btn5=new JButton("5");   btn5.addActionListener(this);
        btn6=new JButton("6");   btn6.addActionListener(this);
        btn7=new JButton("7");   btn7.addActionListener(this);
        btn8=new JButton("8");   btn8.addActionListener(this);
        btn9=new JButton("9");   btn9.addActionListener(this);
        btnD=new JButton(".");     btnD.addActionListener(this); btnD.setForeground(Color.GREEN);
        btnAC=new JButton("AC"); btnAC.addActionListener(this); btnAC.setBackground(Color.RED);
        btnAdd=new JButton("+"); btnAdd.addActionListener(this); btnAdd.setForeground(Color.CYAN);
        btnSub=new JButton("-"); btnSub.addActionListener(this); btnSub.setForeground(Color.CYAN);
        btnReasult=new JButton("="); btnReasult.addActionListener(this); btnReasult.setForeground(Color.RED);
        
        p2.add(btn1);p2.add(btn2);p2.add(btn3);p2.add(btn4);p2.add(btn5);
        p2.add(btn6);p2.add(btn7);p2.add(btn8);p2.add(btn9);p2.add(btn0);
        p2.add(btnD);p2.add(btnAC);p2.add(btnAdd);p2.add(btnSub);p2.add(btnReasult);
        p2.setLayout(new GridLayout(5,3));
        
        add(p1,BorderLayout.NORTH);
        add(p2,BorderLayout.CENTER);
        add(p3,BorderLayout.SOUTH);
    }
    public void num(int i){
        String s=null;
        s=String.valueOf(i);
        if(end){
            reasult.setText("0");
            end=false;
        }
        if((reasult.getText()).equals("0")){
            reasult.setText(s);
        }
        else{
            str=reasult.getText()+s;
            reasult.setText(str);
        }
    }
    public void actionPerformed(ActionEvent e){
        if(e.getSource()==btn1) num(1);
        else if(e.getSource()==btn2) num(2);
        else if(e.getSource()==btn3) num(3);
        else if(e.getSource()==btn4) num(4);
        else if(e.getSource()==btn5) num(5);
        else if(e.getSource()==btn6) num(6);
        else if(e.getSource()==btn7) num(7);
        else if(e.getSource()==btn8) num(8);
        else if(e.getSource()==btn9) num(9);
        else if(e.getSource()==btn0) num(0);
        else if(e.getSource()==btnAdd){
            sign(1);
            btnD.setEnabled(true);
        }
        else if(e.getSource()==btnSub){
            sign(2);
            btnD.setEnabled(true);
        }
        else if(e.getSource()==btnAC){
            btnD.setEnabled(true);
            reasult.setText("0");
        }
        else if(e.getSource()==btnD){
            str=reasult.getText();
            str+='.';
            reasult.setText(str);
            btnD.setEnabled(false);
        }
        else if(e.getSource()==btnReasult){
            btnD.setEnabled(true);
            num2=Double.parseDouble(reasult.getText());
            if(add){
                num1=num1+num2;
            }
            else if(sub){
                num1=num1-num2;
            }
            reasult.setText(String.valueOf(num1));
            end=true;
        }
    }
    public void sign(int s){
        if(s==1){
            add=true;
            sub=false;
            
        }
        else if(s==2){
            add=false;
            sub=true;
            
        }
        
        num1=Double.parseDouble(reasult.getText());
        end=true;
    }
    public static void main(String[] args){
        Jisuanqi j=new Jisuanqi();
        j.setTitle("+/-简易计算器");
        j.setLocation(500, 280);
        j.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
        j.setResizable(false);
        j.pack();
        j.setVisible(true);
    }
}

原文地址:https://www.cnblogs.com/markliu/p/2554600.html