源代码:
package com.briup.test;
import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
public class Calculator extends JFrame{
private Container briup_Pane;
private JTextField briup_field;
private JButton briup_resultBtn;
private JButton[] briup_allBtns;
private String briup_Op = null;
private String briup_m = null;
private String briup_n=null;
private boolean briup_cls = false;
public Calculator(String briup_title){
setTitle(briup_title);
setSize(400,300);
setDefaultCloseOperation(EXIT_ON_CLOSE);
briup_Pane = getContentPane();
briup_field = new JTextField(30);
briup_resultBtn = new JButton(" = ");
initAdd();
}
public void initAdd(){
briup_Pane.setLayout(new BorderLayout());
JPanel briup_northPan = new JPanel();
JPanel briup_centerPan = new JPanel();
JPanel briup_southPan = new JPanel();
briup_northPan.setLayout(new FlowLayout());
briup_centerPan.setLayout(new GridLayout(4,4));
briup_southPan.setLayout(new FlowLayout());
briup_northPan.add(briup_field);
briup_southPan.add(briup_resultBtn);
briup_Pane.add(briup_northPan,BorderLayout.NORTH);
briup_Pane.add(briup_centerPan,BorderLayout.CENTER);
briup_Pane.add(briup_southPan,BorderLayout.SOUTH);
briup_allBtns = new JButton[17];
String briup_str = "123+456-789*0.c/";
for(int i=0;i<briup_allBtns.length;i++){
briup_allBtns[i] = new JButton(briup_str.substring(i,i+1));
}
for(int i=0;i<briup_allBtns.length;i++){
briup_centerPan.add(briup_allBtns[i]);
}
for(int i=0;i<briup_allBtns.length;i++){
briup_allBtns[i].addActionListener(this);
briup_resultBtn.addActionListener(this);
}
}
public void actionPerformed(ActionEvent e){
String briup_str = e.getActionCommand();
if("0123456789.".indexOf(briup_str) != -1){//-1biaoshibubaohan
if(briup_cls){
briup_field.setText("");
briup_cls = false;
}
briup_field.setText(briup_field.getText()+briup_str);
}else if("+-*/".indexOf(briup_str) !=-1){
if(briup_field.getText().equals("")){
briup_Op = briup_str;
}else if(briup_m==null){
briup_m = briup_field.getText();
briup_Op = briup_str;
briup_field.setText("");
}else if(briup_m!=null){
setResult();
briup_m = briup_field.getText();
briup_Op = briup_str;
}
}else if(briup_str.equals("=")){
setResult();
}else if(briup_str.equals("c")){
briup_field.setText("");
briup_m = null;
briup_n = null;
}
}
public void setResult(){
if(briup_field.getText().equals("")){
briup_cls = true;
briup_m = null;
briup_n = null;
}else if(briup_m != null){
briup_n = briup_field.getText();
if(briup_Op.equals("+")){
briup_field.setText(Double.parseDouble(briup_m) + Double.parseDouble(briup_n)+"");
}
if(briup_Op.equals("-")){
briup_field.setText(Double.parseDouble(briup_m) - Double.parseDouble(briup_n)+"");
}
if(briup_Op.equals("*")){
briup_field.setText(Double.parseDouble(briup_m) * Double.parseDouble(briup_n)+"");
}
if(briup_Op.equals("/")){
briup_field.setText(Double.parseDouble(briup_m) / Double.parseDouble(briup_n)+"");
}
briup_cls = true;
briup_n = null;
briup_m=null;
}
}
public static void main(String[] args){
Calculator c = new Calculator("Calculator_1");
c.setVisible(true);
}
}