JAVA写的计算器

第一次写(JAVA的计算器,新手勿喷)。  哈哈啊哈哈


class Proformed {


public static void main(String[] args) {
// TODO 自动生成的方法存根
NewCal  cal = new  NewCal("Calculator");



}


}
//上边是个主函数哈哈哈哈哈

//下边是正文,我记得以前是上传过文件夹的,可是怎么找不到了。 所以把源码贴出来。
import   java.awt.*;
import   java.awt.event.*;
import   javax.swing.*;
import   javax.swing.text.*;
public class NewCal   implements  ActionListener{


JTextArea  showText  =  new  JTextArea(1 ,30);
JButton   zero = new   JButton("0");
JButton   one  =  new  JButton("1");
JButton   two  =  new  JButton("2");
JButton   three = new  JButton("3");
JButton   four = new  JButton("4");
JButton   five = new  JButton("5");
JButton   six  = new  JButton("6");
JButton   seven = new  JButton("7");
JButton   eight = new  JButton("8");
JButton   nine  = new  JButton("9");
JButton   pluse = new  JButton("+");
JButton   subtract = new  JButton("—");
JButton   multiplication  = new  JButton("×");
JButton  devisionMethod  =  new  JButton("/");
JButton  equal  =  new  JButton("=");
JButton  pointer = new  JButton(".");
JPanel   panel =  new  JPanel();



protected  NewCal(String  str)
{

JFrame   frame = new  JFrame(str);
panel.setLayout(new  GridLayout(4 , 4));
panel.add(one);
panel.add(two);
panel.add(three);
panel.add(pluse);
panel.add(four);
panel.add(five);
panel.add(six);
panel.add(subtract);
panel.add(seven);
panel.add(eight);
panel.add(nine);
panel.add(multiplication);
panel.add(zero);
panel.add(pointer);
panel.add(equal);
panel.add(devisionMethod);
Container  container  =frame.getContentPane();
container.add(showText , BorderLayout.NORTH);
container.add(panel , BorderLayout.CENTER);
frame.setVisible(true);
frame.setSize(300, 300);



zero.addActionListener(this);
one.addActionListener(this);
two.addActionListener(this);
three.addActionListener(this);
four.addActionListener(this);
five.addActionListener(this);
six.addActionListener(this);
seven.addActionListener(this);
eight.addActionListener(this);
nine.addActionListener(this);
pluse.addActionListener(this);
subtract.addActionListener(this);
multiplication.addActionListener(this);
devisionMethod.addActionListener(this);
pointer.addActionListener(this);
equal.addActionListener(this);
}



protected void  windowClosing(WindowEvent  e)
{
System.exit(0);
}

double  count = 0;
boolean  divisor=false;//目的在于检测有没有第一次就按运算符导致错误(这个变量现在看不懂了)
boolean  zeroAfterEqual=false;

public    void  actionPerformed(ActionEvent  e)
{
if(e.getSource()==zero)
zeroMethod();
if(e.getSource()==one)
oneMethod();
if(e.getSource()==two)
twoMethod();
if(e.getSource()==three)
threeMethod();
if(e.getSource()==four)
fourMethod();
if(e.getSource()==five)
fiveMethod();
if(e.getSource()==six)
sixMethod();
if(e.getSource()==seven)
sevenMethod();
if(e.getSource()==eight)
eightMethod();
if(e.getSource()==nine)
nineMethod();
if(e.getSource()==pluse)
try
{
pluseMethod();
}
catch(Exception  m)
{
showText.setText("请先输入数字");
b=1;
}

if(e.getSource()==subtract)
try
{
subtractMethod();
}
catch(Exception  m)
{
showText.setText("请先输入数字");
b=1;
}
if(e.getSource()==multiplication)
try
{
multiplicationMethod();
}
catch(Exception  m)
{
showText.setText("请先输入数字");
b=1;
}
if(e.getSource()==devisionMethod)
try
{
devisionMethods();
}
catch(Exception  m)
{
showText.setText("请先输入数字");
b=1;
}
if(e.getSource()==equal)
equalMethod();
if(e.getSource()==pointer)
pointerMethod();

}

boolean  cm=false;
int b=0;
int  test=0;
boolean  clean= false;
double a=0;
protected  void  zeroMethod()
{
b();
showText.append("0");
cm=true;
}

protected  void   oneMethod()
{
b();
showText.append("1");
}

protected  void   twoMethod()
{
b();
showText.append("2");
}

protected  void  threeMethod()
{
b();
showText.append("3");
}

protected  void  fourMethod()
{
b();
showText.append("4");
}

protected  void  fiveMethod()
{
b();
showText.append("5");
}

protected  void  sixMethod()
{
b();
showText.append("6");
}

protected  void  sevenMethod()
{
b();
showText.append("7");
}

protected  void  eightMethod()
{
b();
showText.append("8");
}

protected  void   nineMethod()
{
b();
showText.append("9");
}


int p=0;
protected  void  pluseMethod()
{
if(p==0)
{
count+=Double.parseDouble(showText.getText());
showText.setText("+");
clean=true;
test=1;
p++;
}
if(p==1)  {p--;}//有错代码
}

protected  void  subtractMethod()
{
count=Double.parseDouble(showText.getText());
showText.setText("—");
clean=true;
test=2;
}




protected  void   multiplicationMethod()
{
if(count==0)
{
count=1.0;
count*=Double.parseDouble(showText.getText());
showText.setText("×");
}
else
{
count*=Double.parseDouble(showText.getText());
showText.setText("×");
}
test=3;
clean=true;
}

protected  void   devisionMethods()
{
count=Double.parseDouble(showText.getText());
showText.setText("/");
test=4;
divisor=true;
clean=true;
}

protected  void   pointerMethod()
{
showText.append(".");
}



protected  void    equalMethod()
{
if(cm==true)
{
showText.setText("1");
cm=false;
}
switch(test)
{
case 1 :   {count+=Double.parseDouble(showText.getText()); a=count;}  break ;
case 2 :   {count-=Double.parseDouble(showText.getText()); a=count; }  break ;
case 3 :   {count*=Double.parseDouble(showText.getText()); a=count; }  break ;
case 4 :   {count/=Double.parseDouble(showText.getText()); a=count; }  break ;
default :  showText.setText("");
}
showText.setText(String.valueOf(a));
count=0;
b++;
}

protected  void  b()
{
if(b==1)
{showText.setText("");   b=0;}
if(clean==true)
showText.setText("");
if(divisor==true)
showText.setText("除数不能为");
divisor=false;
clean=false;
}


}

猜你喜欢

转载自blog.csdn.net/libingbojava/article/details/77993071