bSqrt.addActionListener(this); bMulti.addActionListener(this); bMinus.addActionListener(this); bPercent.addActionListener(this); bPlus.addActionListener(this);
bReciprocal.addActionListener(this); bEqual.addActionListener(this); bDot.addActionListener(this);
bNegative.addActionListener(this);
p2.add(b7); //将按钮依次添加到面板 p2.add(b8); p2.add(b9); p2.add(bDiv); p2.add(bSqrt); p2.add(b4); p2.add(b5); p2.add(b6); p2.add(bMulti); p2.add(bPercent); p2.add(b1); p2.add(b2); p2.add(b3);
p2.add(bMinus); p2.add(bReciprocal); p2.add(b0);
p2.add(bNegative); p2.add(bDot); p2.add(bPlus); p2.add(bEqual);
bBackspace=new Button(\ bCE=new Button(\ bC=new Button(\
bBackspace.addActionListener(this); bCE.addActionListener(this); bC.addActionListener(this);
p1.add(bBackspace); p1.add(bCE); p1.add(bC);
tf2=new TextField(2);
- 7 -
tf2.setEnabled(false);
tf2.setBackground(Color.LIGHT_GRAY); bMC=new Button(\ bMR=new Button(\ bMS=new Button(\ bM=new Button(\
bMC.addActionListener(this); bMR.addActionListener(this); bMS.addActionListener(this); bM.addActionListener(this);
p6.add(tf2); p3.add(p6); p3.add(bMC); p3.add(bMR); p3.add(bMS); p3.add(bM);
f.setVisible(true);
f.addWindowListener(this); }
public void actionPerformed(ActionEvent e) {
//key 0 to 9
if(this.keyAvailable&&e.getActionCommand().length()==1&&e.getActionCommand().compareTo(\
{
if(this.isTempNowInput) {
this.dNowInput=0;
this.isTempNowInput=false; }
this.nBitsNum++;
if(this.alreadyHaveDot==false)
this.dNowInput=this.dNowInput*10+Double.parseDouble(e.getActionCommand()); else {
double temp=Double.parseDouble(e.getActionCommand()); for(int i=this.n;i<0;i++) {
temp*=0.1;
- 8 -
}
this.dNowInput+=temp; this.n--; }
this.tf1.setText(Double.toString(this.dNowInput)); }
// key dot
if(this.keyAvailable && e.getActionCommand()==\ {
if(this.alreadyHaveDot==false) {
this.nBitsNum++;
this.alreadyHaveDot=true; this.n=-1; } }
//key \
if(this.keyAvailable && e.getActionCommand()==\|| e.getActionCommand()==\|| e.getActionCommand()==\
{
if(this.alreadyClickedEqueal) {
this.dNowInput=this.dResult; this.isTempNowInput=true; } else {
switch(this.nOperation) {
case 1: this.dResult+=this.dNowInput; break; case 2: this.dResult-=this.dNowInput; break; case 3: this.dResult*=this.dNowInput; break; case 4: {
if(this.dNowInput==0) {
tf1.setText(\除数不能为零\ this.keyAvailable=false; }
else this.dResult=this.dResult/this.dNowInput; } }
if(this.keyAvailable)tf1.setText(Double.toString(this.dResult)); this.dNowInput=0;
- 9 -
}
if(e.getActionCommand()==\ {
this.nOperation=1; }
if(e.getActionCommand()==\ {
this.nOperation=2; }
if(e.getActionCommand()==\ {
this.nOperation=3; }
if(e.getActionCommand()==\ {
this.nOperation=4; }
this.nBitsNum=0;
this.alreadyClickedEqueal=false; }
// key \
if(this.keyAvailable && e.getActionCommand()==\ {
this.dNowInput=0-this.dNowInput;
tf1.setText(Double.toString(this.dNowInput)); }
// key \
if(e.getActionCommand()==\ {
this.nBitsNum=0; this.dResult=0; this.dNowInput=0;
this.alreadyHaveDot=false; this.n=0;
this.nOperation=1; this.keyAvailable=true;
this.alreadyClickedEqueal=false; tf1.setText(\ }
// key \
if(e.getActionCommand()==\ {
this.nBitsNum=0; this.dNowInput=0;
- 10 -
this.alreadyHaveDot=false; this.n=0;
this.nOperation=1; this.keyAvailable=true; tf1.setText(\ }
// key \
if(this.keyAvailable && e.getActionCommand()==\ {
if(this.alreadyClickedEqueal) {
if(this.dResult>=0) {
this.dResult=Math.sqrt(this.dResult);
tf1.setText(Double.toString(this.dResult)); } else {
tf1.setText(\函数输入无效\ this.keyAvailable=false; } } else {
if(this.dNowInput>=0) {
this.dNowInput=Math.sqrt(this.dNowInput); tf1.setText(Double.toString(this.dNowInput)); } else {
tf1.setText(\函数输入无效\ this.keyAvailable=false; } } }
// key \
if(this.keyAvailable && e.getActionCommand()==\ {
if(this.dNowInput==0) {
tf1.setText(\除数不能为零\ this.keyAvailable=false; }
- 11 -