📄 calculator.java
字号:
if(e.getSource() == button[9]){
if (!start)textAnswer.setText(textAnswer.getText() + Integer.toString(9));
else textAnswer.setText( "9" );
start = false;
}
if(e.getSource() == buttonAdd){
if ((textAnswer.getText()).equals("")) return;//求加
if (Operation!=null) aa(e);
Operation= "add";
Num=textAnswer.getText();
start = true;
}
if(e.getSource() == buttonSub){
if ((textAnswer.getText()).equals("")) return;//求减
if (Operation!=null) aa(e);
Operation= "sub";
Num= textAnswer.getText();
start = true;
}
if(e.getSource() == buttonMul){
if ((textAnswer.getText()).equals("")) return;//求乘
if (Operation!=null ) aa(e);
Operation= "mul";
Num= textAnswer.getText();
start = true;
}
if(e.getSource() == buttonDiv){
if ((textAnswer.getText()).equals("")) return;//求除
if (Operation!=null ) aa(e);
Operation= "div";
Num= textAnswer.getText();
start = true;
}
if(e.getSource() == buttonSqrt){
if ((textAnswer.getText()).equals("")) return;//求开方
Operation= "sqrt";
Num= textAnswer.getText();
if (Operation!=null ) aa(e);
start = true;
}
if(e.getSource() == buttonDao){
if ((textAnswer.getText()).equals("")) return;//求倒数
Operation= "dao";
Num= textAnswer.getText();
if (Operation!=null ) aa(e);
start = true;
}
if(e.getSource() == buttonMod){
if ((textAnswer.getText()).equals("")) return;//求余数
if (Operation!=null ) aa(e);
Operation= "mod";
Num= textAnswer.getText();
start = true;
}
if(e.getSource() == buttonxy){
if ((textAnswer.getText()).equals("")) return;//求x的y次方
if (Operation!=null ) aa(e);
Operation= "x^y";
Num= textAnswer.getText();
start = true;
}
///////////////////////////////
if(e.getSource() == buttonln){
if ((textAnswer.getText()).equals("")) return;//求以e为底的对数
Num= textAnswer.getText();double last=0;
try{
last=Double.parseDouble(Num);
}catch(NumberFormatException ne){}
textAnswer.setText(""+Math.log(last));
start = true;}
///////////
if(e.getSource() == buttonjie){
if ((textAnswer.getText()).equals("")) return;//求阶乘
Num= textAnswer.getText();double last=0;
try{
last=Double.parseDouble(Num);
}catch(NumberFormatException ne){}
textAnswer.setText(""+fac1((long)last));
start = true;}
///////////
if(e.getSource() == buttonsin){
if ((textAnswer.getText()).equals("")) return;//求正弦
Num= textAnswer.getText();double last=0;
try{
last=Double.parseDouble(Num);
}catch(NumberFormatException ne){}
textAnswer.setText(""+Math.sin(last));
start = true;}
/////////
if(e.getSource() == buttoncos){
if ((textAnswer.getText()).equals("")) return;//求余弦
Num= textAnswer.getText();double last=0;
try{
last=Double.parseDouble(Num);
}catch(NumberFormatException ne){}
textAnswer.setText(""+Math.cos(last));
start = true;}
//////
if(e.getSource() == buttontan){
if ((textAnswer.getText()).equals("")) return;//求正切
Num= textAnswer.getText();double last=0;
try{
last=Double.parseDouble(Num);
}catch(NumberFormatException ne){}
textAnswer.setText(""+Math.tan(last));
start = true;}
//////////
if(e.getSource() == buttonPI){
textAnswer.setText(""+Math.PI);//求派
start=true;
}
if(e.getSource() == buttonEqual){
aa(e);
}
if (e.getSource() == buttonAddAndSub) {
boolean isNumber = true;
String s = textAnswer.getText();
for (int i = 0; i < s.length(); i++)
if (!(s.charAt(i) >= '0' && s.charAt(i) <= '9' || s.charAt(i) == '.' ||s.charAt(i) == '-')){
isNumber = false;
break;
}
if(isNumber == true) {
if(s.charAt(0) == '-') {
textAnswer.setText("");
for (int i = 1; i < s.length(); i++) {
char a = s.charAt(i);
textAnswer.setText(textAnswer.getText() + a);
}
}
else
textAnswer.setText('-' + s);
}
}
///////////////////////////////////////////////////
if(e.getSource() == buttonDot){
if ((textAnswer.getText ( )) .equals ("") ) return;
if((textAnswer.getText( )).indexOf (".")!= -1 ) return;
if (!start&&textAnswer.getText()!="")
textAnswer.setText(textAnswer.getText()+".");
else
textAnswer.setText("0.");
start = false;
}
// if(e.getSource() == buttonMC){
// textMemory.setText("0");
// }
/* if(e.getSource() == buttonMR){
String savedNum=textMemory.getText();
start =true;
if(!savedNum.equals("")) textAnswer.setText(savedNum);
}
if(e.getSource() == buttonMS){
textMemory.setText(textAnswer.getText());
}
if(e.getSource() == buttonMAdd){
String savednumber=textMemory.getText();
String showstr=textAnswer.getText();
double sn=0,ss=0;
if(savednumber.equals("")||showstr.equals("")) return;
try{
sn=Double.parseDouble(savednumber);
ss=Double.parseDouble(showstr);
sn+=ss;
}catch(NumberFormatException ee){
textAnswer.setText("输入数格式不对!");
start = true;
return;
}
int ir=(int)sn;
if(ir==sn) textMemory.setText(""+ir);
else
textMemory.setText(""+sn);
start =true;
} */
////////////////////////////////////////////////////////////////
if (e.getSource() == buttonBk) {
String s = textAnswer.getText();
textAnswer.setText("");
for (int i = 0; i < s.length() - 1; i++) {
char a = s.charAt(i);
textAnswer.setText(textAnswer.getText() + a);
}
}
if(e.getSource() == buttonCe) {
Operation=null;
textAnswer.setText("0");
start = true;
}
if(e.getSource() == buttonC) {
Operation=null;
textAnswer.setText("0");
start = true;
}
if (e.getSource() == copyItem) {
copy = textAnswer.getText();
}
if (e.getSource() == pasteItem) {
textAnswer.setText(copy);
}
if (e.getSource() == topHelp) {
JOptionPane.showMessageDialog(panel, scrollHelp);
}
if (e.getSource() == aboutCal) {
JOptionPane.showMessageDialog(panel,"计算器110版\n开发者:吴春辉\n学院:05软件多媒体4班");
}
}
//////////////////////////////////////////////////////////////////////////////////////////////////
public static void main(String args[]) {
new Calculator();
}
public void aa(ActionEvent e){
if(Operation == null|| Num ==null||textAnswer.getText().equals("")) return;
double last =0,now=0,s=0;
int r=0;
try{
last=Double.parseDouble(Num);
now=Double.parseDouble(textAnswer.getText());
}catch(NumberFormatException ne){
Operation=null;
Num=null;
textAnswer.setText ("input error");
start =true;
return;
}
if(Operation.equals ("add")){
r = (int)(last + now);
if (r == last + now) textAnswer.setText ("" + r);
else textAnswer.setText ("" + (last + now));
}
if(Operation.equals ("sub")){
r = (int)(last - now );
if ( r == last - now ) textAnswer.setText (""+ r );
else textAnswer.setText ("" + (last - now));
}
if(Operation.equals("mul")){
r = (int)(last *now);
if ( r== last * now) textAnswer.setText ("" +r);
else textAnswer.setText ("" + (last * now));
}
if(Operation.equals ("div") ){
r = ( int ) (last / now);
if ( r == last / now) textAnswer.setText (" " +r);
else textAnswer.setText ("" + (last / now) );
}
if(Operation.equals ("mod")){
r=(int)(last%now);
if ( r == last%now) textAnswer.setText (" " +r);
else textAnswer.setText ("" + (last%now) );
}
if(Operation.equals ("x^y")){
r=(int)Math.pow(last,now);
if ( r ==Math.pow(last,now)) textAnswer.setText (" " +r);
else textAnswer.setText ("" + Math.pow(last,now) );
}
if(Operation.equals ("sqrt")){
s=Math.sqrt(now);
textAnswer.setText ("" +s);
}
if(Operation.equals ("dao")){
s=1/now;
textAnswer.setText ("" +s);
}
Num=textAnswer.getText() ;
Operation=null;
start=true;
}
static long fac1(long x){ //阶乘函数
long rslt=1;
for (long i=1;i<=x;i++)
rslt*=i;
return rslt;
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -