📄 mycalculator.java
字号:
textField.setText(textField.getText()+output);}
if(click==buttons[ 12 ])
{output+="6";
textField.setText(textField.getText()+output);}
if(click==buttons[ 16 ])
{output+="1";
textField.setText(textField.getText()+output);}
if(click==buttons[ 17 ])
{output+="2";
textField.setText(textField.getText()+output);}
if(click==buttons[ 18 ])
{output+="3";
textField.setText(textField.getText()+output);}
if(click==buttons[ 22 ])
{output+="0";
textField.setText(textField.getText()+output);}
if(click==buttons[ 2 ])
{textField.setText("");answer=mid=0;
textField3.setText("中间结果:");
if(textField2.getText().equals("ERROR!!! M"))
textField2.setText("\tM");
if(!textField2.getText().equals("\tM"))
textField2.setText("");
}
//"空"的错误
if(textField.getText().equals(""))
{if(click==buttons[21]||click==buttons[24]||click==buttons[23]||click==buttons[25]||click==buttons[19]||
click==buttons[13]||click==buttons[7]||click==buttons[26]||click==buttons[20]||click==buttons[8]||click==buttons[14])
{if(textField2.getText().equals("\tM")){textField2.setText("ERROR!!! M");}
else textField2.setText("ERROR!!!");}
}
//小数点
if(click == buttons[24]){
boolean exist = false;
if(textField.getText().length() == 0)
exist = true;
for (int i = 0; i < textField.getText().length(); i++)
if('.' == textField.getText().charAt(i))
{exist = true;break;}
if(exist == false)
{output+=".";
textField.setText(textField.getText() + output);}
}
//+/-键
if (click == buttons[23])
{String judge2=textField.getText();
if(judge2.charAt(0)!='-')
{textField.setText('-' + judge2);}
else
{double change=Math.sqrt((Double.parseDouble(judge2))*(Double.parseDouble(judge2)));
textField.setText(""+change);}
}
//sqrt键
if(click == buttons[8]){
String judge1 = textField.getText();
if(judge1.charAt(0)=='-')
{textField2.setText("ERROR!!!");}
else
{answer=Math.sqrt(Double.parseDouble(textField.getText()));
textField.setText(""+answer);}
}
//1/x键
if(click==buttons[20]){
if(Double.parseDouble(textField.getText())!=0)
{answer=1/(Double.parseDouble(textField.getText()));
textField.setText(""+answer);}
else
{textField2.setText("ERROR!!!");}
}
//CE键
if (click==buttons[1])
{textField.setText("");}
//退格键
if(click==buttons[0])
{String remember0=textField.getText();
textField.setText("");
for(int i=0;i<remember0.length()-1;i++)
{textField.setText(textField.getText()+remember0.charAt(i));}
}
//About键
if(click==buttons[27])
JOptionPane.showMessageDialog(null,"欢 迎 使 用 0461038 计 算 器 : )\n\tAlmost Final Version1.0", "About",JOptionPane.WARNING_MESSAGE);
//MS键
if(click==buttons[3]&&(!textField.getText().equals("")))
{textField2.setText("\tM");
MM=Double.parseDouble(textField.getText());}
//MR键
if(click==buttons[9]&&(textField2.getText().equals("\tM")))
{textField.setText(""+MM);}
//MC键
if(click==buttons[15]&&(textField2.getText().equals("\tM")))
{textField2.setText("");
MM=0;}
//M+键
if(click==buttons[21]&&(textField2.getText().equals("\tM")))
{MM+=Double.parseDouble(textField.getText());}
//%键
if (click==buttons[14]) {
if (answer==0) {
String remember21= textField.getText();
textField.setText(remember21);
double remember22=Double.parseDouble(textField.getText());
remember22=1+remember22/100;
textField.setText(""+remember22);
}}
//四则运算+-*/
if(click == buttons[25]||click == buttons[19]||click == buttons[13]||click == buttons[7]){
//+键
if(click == buttons[25]){
switch (remember32){
case 0:
answer += Double.parseDouble(textField.getText());
break;
case 1:
answer -= Double.parseDouble(textField.getText());
break;
case 2:
answer *= Double.parseDouble(textField.getText());
break;
case 3:
if(Double.parseDouble(textField.getText()) == 0){
textField2.setText("ERROR!!!");}
else
answer /= Double.parseDouble(textField.getText());
break;
default:answer = Double.parseDouble(textField.getText());}
textField.setText("");
remember32 = remember31 = 0;}
//-键
if(click == buttons[19]){
switch (remember32){
case 0:
answer += Double.parseDouble(textField.getText());
break;
case 1:
answer -= Double.parseDouble(textField.getText());
break;
case 2:
answer *= Double.parseDouble(textField.getText());
break;
case 3:
if(Double.parseDouble(textField.getText()) == 0){
textField2.setText("ERROR!!!");}
else
answer /= Double.parseDouble(textField.getText());
break;
default:answer = Double.parseDouble(textField.getText());}
textField.setText("");
remember32 = remember31 = 1;}
//*键
if(click==buttons[13]){
switch (remember32){
case 0:
answer += Double.parseDouble(textField.getText());
break;
case 1:
answer -= Double.parseDouble(textField.getText());
break;
case 2:
answer *= Double.parseDouble(textField.getText());
break;
case 3:
if(Double.parseDouble(textField.getText()) == 0){
textField2.setText("ERROR!!!");}
else
answer /= Double.parseDouble(textField.getText());
break;
default:answer = Double.parseDouble(textField.getText());}
textField.setText("");
remember32 = remember31 = 2;}
///键
if(click==buttons[7]){
switch (remember32){
case 0:
answer += Double.parseDouble(textField.getText());
break;
case 1:
answer -= Double.parseDouble(textField.getText());
break;
case 2:
answer *= Double.parseDouble(textField.getText());
break;
case 3:
if(Double.parseDouble(textField.getText()) == 0){
textField2.setText("ERROR!!!");}
else
answer /= Double.parseDouble(textField.getText());
break;
default:answer = Double.parseDouble(textField.getText());}
textField.setText("");
remember32 = remember31 = 3;}
}
//=键
if(click==buttons[26]){//这一次按下等号
//连等
if(remember32 == 5){//上一次按下等号
if(remember31 == 0){//不按运算符号,原来的remember31未再改变
answer += mid;
textField.setText(""+answer);}
if(remember31 == 1){
answer -= mid;
textField.setText(""+answer);}
if(remember31 == 2){
answer *= mid;
textField.setText(""+answer);}
if(remember31 == 3){
if(Double.parseDouble(textField.getText()) == 0){
textField2.setText("ERROR!!!");}
else{answer /= mid;
textField.setText(""+answer);}}
}
else{mid = Double.parseDouble(textField.getText());//上一次按下的不是等号,中间值存为按本次等号后的值,以备下一次若按等号时使用
//一般等
if(remember31 == 0){//不按运算符号,remember31未改变
remember32 = -1;//排除以前记录的remember32可能干扰,不是特别重要
answer += Double.parseDouble(textField.getText());
textField.setText(""+answer);}
if(remember31 == 1){
remember32 = -1;
answer -= Double.parseDouble(textField.getText());
textField.setText(""+answer);}
if(remember31 == 2){
remember32 = -1;
answer *= Double.parseDouble(textField.getText());
textField.setText(""+answer);}
if(remember31 == 3){
remember32 = -1;
if(Double.parseDouble(textField.getText()) == 0){
textField2.setText("ERROR!!!");}
else {answer /= Double.parseDouble(textField.getText());
textField.setText(""+answer);}}
}
remember32 = 5;}
//middle值:
if(click == buttons[25]||click == buttons[19]||click == buttons[13]||click == buttons[7])
textField3.setText("中间结果:"+answer);
}
//
private void addComponent( Component component )
{
layout.setConstraints( component, constraints );
container.add( component ); // add component
}
// execute application
public static void main( String args[] )
{
myCalculator application = new myCalculator();
application.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE );
}
} // end GUI myCalculator
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -