package calculater1;
import java.awt.*;
import javax.swing.*;
public class jiemian extends JFrame{
JPanel jp=new JPanel();
JPanel jp1=new JPanel();
JButton b0=new JButton("0");
JButton b1=new JButton("1");
JButton b2=new JButton("2");
JButton b3=new JButton("3");
JButton b4=new JButton("4");
JButton b5=new JButton("5");
JButton b6=new JButton("6");
JButton b7=new JButton("7");
JButton b8=new JButton("8");
JButton b9=new JButton("9");
JButton b10=new JButton(".");
JButton b11=new JButton("+");
JButton b12=new JButton("-");
JButton b13=new JButton("*");
JButton b14=new JButton("/");
JButton b15=new JButton("=");
JButton b16=new JButton(" Clear ");
JButton b17=new JButton(" BackSace ");
JTextField tf=new JTextField(14);
public jiemian(){
setTitle("计算器");
tf.setEditable(false);
setLayout(new BorderLayout());
jp.setLayout(new GridLayout(4,4));
jp.add(b7);
jp.add(b8);
jp.add(b9);
jp.add(b14);
jp.add(b4);
jp.add(b5);
jp.add(b6);
jp.add(b13);
jp.add(b1);
jp.add(b2);
jp.add(b3);
jp.add(b12);
jp.add(b0);
jp.add(b10);
jp.add(b15);
jp.add(b11);
jp1.add(tf);
jp1.add(b16);
jp1.add(b17);
add(jp1,BorderLayout.NORTH);
add(jp,BorderLayout.CENTER);
setSize(300,200);
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
setVisible(true);
}
}
package calculater1;
import java.awt.event.*;
import calculater1.jiemian;
public class test implements ActionListener{
jiemian a=new jiemian();
String s;
char c;
double m,n;
int i=0;
public static void main(String[] args) {
test t=new test();
t.addjsq();
}
public void addjsq(){
a.b0.addActionListener(this);
a.b1.addActionListener(this);
a.b2.addActionListener(this);
a.b3.addActionListener(this);
a.b4.addActionListener(this);
a.b5.addActionListener(this);
a.b6.addActionListener(this);
a.b7.addActionListener(this);
a.b8.addActionListener(this);
a.b9.addActionListener(this);
a.b10.addActionListener(this);
a.b11.addActionListener(this);
a.b12.addActionListener(this);
a.b13.addActionListener(this);
a.b14.addActionListener(this);
a.b15.addActionListener(this);
a.b16.addActionListener(this);
a.b17.addActionListener(this);
}
public void actionPerformed(ActionEvent e) {
if(e.getSource()==a.b0){
if(i==0){
a.tf.setText("0");
i=1;
}
else {
s=a.tf.getText();
if(Double.parseDouble(s)>0||Double.parseDouble(s)<0){
a.tf.setText(s+"0");
}else {
if(s.trim().indexOf(".")==-1){
a.tf.setText(s);
}else
a.tf.setText(s+"0");
}
}
}
else if(e.getSource()==a.b1){
if(i==0){
a.tf.setText("1");
i=1;
}
else {
s=a.tf.getText();
if(Double.parseDouble(s)>0||Double.parseDouble(s)<0){
a.tf.setText(s+"1");
}else {
if(s.trim().indexOf(".")==-1)
a.tf.setText("1");
else
a.tf.setText(s+"1");
}
}
}
else if(e.getSource()==a.b2){
if(i==0){
a.tf.setText("2");
i=1;
}
else {
s=a.tf.getText();
if(Double.parseDouble(s)>0||Double.parseDouble(s)<0){
a.tf.setText(s+"2");
}else {
if(s.trim().indexOf(".")==-1)
a.tf.setText("2");
else
a.tf.setText(s+"2");
}
}
}
else if(e.getSource()==a.b3){
if(i==0){
a.tf.setText("3");
i=1;
}
else {
s=a.tf.getText();
if(Double.parseDouble(s)>0||Double.parseDouble(s)<0){
a.tf.setText(s+"3");
}else {
if(s.trim().indexOf(".")==-1)
a.tf.setText("3");
else
a.tf.setText(s+"3");
}
}
}
else if(e.getSource()==a.b4){
if(i==0){
a.tf.setText("4");
i=1;
}
else {
s=a.tf.getText();
if(Double.parseDouble(s)>0||Double.parseDouble(s)<0){
a.tf.setText(s+"4");
}else {
if(s.trim().indexOf(".")==-1)
a.tf.setText("4");
else
a.tf.setText(s+"4");
}
}
}
else if(e.getSource()==a.b5){
if(i==0){
a.tf.setText("5");
i=1;
}
else {
s=a.tf.getText();
if(Double.parseDouble(s)>0||Double.parseDouble(s)<0){
a.tf.setText(s+"5");
}else {
if(s.trim().indexOf(".")==-1)
a.tf.setText("5");
else
a.tf.setText(s+"5");
}
}
}
else if(e.getSource()==a.b6){
if(i==0){
a.tf.setText("6");
i=1;
}
else {
s=a.tf.getText();
if(Double.parseDouble(s)>0||Double.parseDouble(s)<0){
a.tf.setText(s+"6");
}else {
if(s.trim().indexOf(".")==-1)
a.tf.setText("6");
else
a.tf.setText(s+"6");
}
}
}
else if(e.getSource()==a.b7){
if(i==0){
a.tf.setText("7");
i=1;
}
else {
s=a.tf.getText();
if(Double.parseDouble(s)>0||Double.parseDouble(s)<0){
a.tf.setText(s+"7");
}else {
if(s.trim().indexOf(".")==-1)
a.tf.setText("7");
else
a.tf.setText(s+"7");
}
}
}
else if(e.getSource()==a.b8){
if(i==0){
a.tf.setText("8");
i=1;
}
else {
s=a.tf.getText();
if(Double.parseDouble(s)>0||Double.parseDouble(s)<0){
a.tf.setText(s+"8");
}else {
if(s.trim().indexOf(".")==-1)
a.tf.setText("8");
else
a.tf.setText(s+"8");
}
}
}
else if(e.getSource()==a.b9){
if(i==0){
a.tf.setText("9");
i=1;
}
else {
s=a.tf.getText();
if(Double.parseDouble(s)>0||Double.parseDouble(s)<0){
a.tf.setText(s+"9");
}else {
if(s.trim().indexOf(".")==-1)
a.tf.setText("9");
else
a.tf.setText(s+"9");
}
}
}
else if(e.getSource()==a.b10){
if(i==0){
a.tf.setText("0.");
i=1;
}
else {
s=a.tf.getText();
if(s.trim().indexOf(".")==-1)
a.tf.setText(s+".");
else
a.tf.setText(s);
}
}
else if(e.getSource()==a.b11){
i=0;
m=Double.parseDouble(a.tf.getText());
c='+';
a.tf.setText(a.tf.getText()+"+");
}
else if(e.getSource()==a.b12){
i=0;
m=Double.parseDouble(a.tf.getText());
c='-';
a.tf.setText(a.tf.getText()+"-");
}
else if(e.getSource()==a.b13){
i=0;
m=Double.parseDouble(a.tf.getText());
c='*';
a.tf.setText(a.tf.getText()+"*");
}
else if(e.getSource()==a.b14){
i=0;
m=Double.parseDouble(a.tf.getText());
c='/';
a.tf.setText(a.tf.getText()+"/");
}
else if(e.getSource()==a.b15){
switch(c){
case '+':{
double result=m+Double.parseDouble(a.tf.getText());
a.tf.setText(result+"");
i=0;
s="";
break;
}
case '-':{
double result=m-Double.parseDouble(a.tf.getText());
a.tf.setText(result+"");
i=0;
s="";
break;
}
case '*':{
double result=m*Double.parseDouble(a.tf.getText());
a.tf.setText(result+"");
i=0;
s="";
break;
}
case '/':{
double result=m/Double.parseDouble(a.tf.getText());
a.tf.setText(result+"");
i=0;
s="";
break;
}
}
}
else if(e.getSource()==a.b16){
s="";
i=0;
c=' ';
m=n=0;
a.tf.setText("");
}
else if(e.getSource()==a.b17){
s=a.tf.getText();
int j=s.length();
if(j>1){
a.tf.setText(s.substring(0,j-1));
}
else {
a.tf.setText("");
i=0;
}
}
}
}