import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
public class Counter extends JFrame implements ActionListener{
private JButton numBu[]=new JButton[11];
private JButton mathBu[]=new JButton[4];
private JButton Bu1=new JButton("=");
private String str[]={"+","-","*","/"};
private JPanel pan=new JPanel();
private JTextField tf=new JTextField();
private double startNum,endNum;
private boolean isAdd,isDelet,isChen,isChu=false ;
private boolean isEnd =true;
public Counter() {
super("计算器模拟");
setSize(400,300);
Container c=getContentPane();
c.setLayout(new BorderLayout());
tf.setHorizontalAlignment(JTextField.RIGHT);
tf.setForeground(Color.blue);
tf.setFont(new Font("TimesRoman",Font.BOLD,30));
tf.setBackground(Color.pink);tf.setEditable(false);
c.add(tf,"North");
for(int n=0;n<10;n++){
numBu[n]=new JButton(n+"");
numBu[n].setBackground(Color.green);
numBu[n].addActionListener(this);
}
numBu[10]=new JButton(".");
Bu1.setBackground(Color.green);
numBu[10].setBackground(Color.green);
numBu[10].addActionListener(this);
for(int n=0;n<4;n++){
mathBu[n]=new JButton(str[n]);
mathBu[n].setBackground(Color.green);
mathBu[n].addActionListener(this);
}
pan.setLayout(new GridLayout(4,4));
for(int n=0;n<4;n++){
if(n!=3)
for(int i=1;i<=3;i++) pan.add(numBu[3*n+i]);
else {
pan.add(numBu[0]); pan.add(numBu[10]); pan.add(Bu1); }
pan.add(mathBu[n]);
}
Bu1.addActionListener(this);
c.add(pan,"Center");
show();
}
public static void main(String[] args) {
Counter c=new Counter();
}
private String s=null;
public void actionPerformed(ActionEvent e) {
//给 数字 按纽添加事件处理
for(int n=0;n<11;n++){
if(e.getSource()==numBu[n]){
//判断是否继续在屏幕输入
if(isEnd){
tf.setText("空格");
isEnd =false; }
s=tf.getText();
if(s.equals("空格"))
tf.setText(e.getActionCommand());
else{
s=s + e.getActionCommand();
tf.setText(s);
}
}
}
//给 运算 按纽添加事件处理
if(e.getSource()==mathBu[0]){
startNum=Double.valueOf(tf.getText()).doubleValue();
isEnd=true;isAdd=true;}
if(e.getSource()==mathBu[1]){
startNum=Double.valueOf(tf.getText()).doubleValue()*(-1);
isEnd=true;isDelet=true;}
if(e.getSource()==mathBu[2]){
startNum=Double.valueOf(tf.getText()).doubleValue();
isEnd=true;isChen=true;}
if(e.getSource()==mathBu[3]){
startNum=Double.valueOf(tf.getText()).doubleValue();
isEnd=true;isChu=true;}
//给 等号 按纽添加事件处理
if(e.getSource()==Bu1){
endNum=Double.valueOf(tf.getText()).doubleValue();
if(isAdd){
tf.setText((startNum+endNum)+"");
isAdd=false;isEnd=true;
}
if(isDelet){
tf.setText((startNum-endNum)+"");isDelet=false;isEnd=true;
}
if(isChen){
tf.setText((startNum*endNum)+"");isChen=false;isEnd=true;
}
if(isChu&&endNum!=0){
tf.setText((startNum/endNum)+"");isChu=false;isEnd=true;
}
}
}
}
--------------------------------------------------------------
一个精简的计算器源码
最新推荐文章于 2020-04-09 12:03:39 发布