📄 calculator.java
字号:
st[1]=String.valueOf(num[1]);
t.setText(st[1]);
}else
Toolkit.getDefaultToolkit().beep();
} else {
if(st[0]==""){
Toolkit.getDefaultToolkit().beep();
}else{
isE=true;
if(num[0]!=0){
num[0]=1/num[0];
st[0]=String.valueOf(num[0]);
t.setText(st[0]);
} else
Toolkit.getDefaultToolkit().beep();
}
}
}
if(a==4){
JOptionPane.showMessageDialog(null,"这按钮不知用来干什么,系统计算器的结果老是0");
}
}
}
class menuAction implements ActionListener{
double nn[][]={{3.141592653589793238,2.718281828459045235,1.618033988749894848},{299792458.0,1.60217653e-19,376.730313461},{6.6260693e-34},{1.3806505e-23,1.66053886e-27,8.314472,602214150000000000000000.0},{6.6742e-11,9.80665}};
public void actionPerformed(ActionEvent e){
if(e.getSource()==m1)
System.exit(0);
else if(e.getSource()==m2[0]){
if(isDot==false){
t.setSelectionStart(1);
t.setSelectionEnd(t.getText().length());
}else
t.selectAll();
t.copy();
t.setSelectionStart(1);
}
else if(e.getSource()==m2[1]){
if(isE==true)
reset();
t.setText("");
t.paste();
st[flag]=t.getText();
try{
num[flag]=Double.parseDouble(st[flag]);
st[flag]=t.getText();
}catch(Exception k){return; }
}
else for(int i=0;i<5;i++)
for(int j=0;j<5;j++){
try{
if(e.getSource()==mi3[i][j]){
if(isE==true)
reset();
st[flag]=String.valueOf(nn[i][j]);
num[flag]=Double.parseDouble(st[flag]);
t.setText(st[flag]);
isDot=true;
}
}catch(Exception k){return;}
}
}
}
class keyhandle extends KeyAdapter{
public void keyReleased(KeyEvent e){
int ke=e.getKeyCode();
if(ke==110){
dot();
}else
if(ke>=96&&ke<=105){
addStr(ke-96);
}else
if(ke==107||ke==106||ke==109||ke==111||ke==10){
p1.requestFocus();
flag=1;
isDot=false;
if(st[0]==""){
Toolkit.getDefaultToolkit().beep();
}else{
if(st[1]!=""&&ke!=10){
calculation(state);
}
if(ke==107){
state=0;
isE=false;
}
if(ke==109){
state=1;
isE=false;
}
if(ke==106){
state=2;
isE=false;
}
if(ke==111){
state=3;
isE=false;
}
if(ke==10){
calculation(state);
isE=true;
}
}
}else
if(ke==8){
backspace();
}else
Toolkit.getDefaultToolkit().beep();
}
}
public void addStr(int a){
if(isE){
reset();
st[flag]=st[flag]+a;
setdot();
}
else{
st[flag]=st[flag]+a;
setdot();
if(st[flag].charAt(0)=='0'&&st[flag].length()==2&&st[flag].charAt(1)!='.'){
st[flag]=a+"";
}
setdot();
//toDouble(st[flag]);
}
}
public void calculation(int s){
switch(s){
case 0:
num[0]=num[0]+num[1];
clean();
break;
case 1:
num[0]=num[0]-num[1];
clean();
break;
case 2:
num[0]=num[0]*num[1];
clean();
break;
case 3:
num[0]=num[0]/num[1];
clean();
break;
}
}
public void reset(){
isDot=false;
st[0]="";
st[0]="";
num[0]=0;
num[1]=0;
flag=0;
state=-1;
t.setText(".0");
isE=false;
}
public double toDouble(String s){
double sum1=0,sum2=0;
String s1="",s2="";
int i=0,j=0,k=0;
int f=0,l=s.length();
for(i=0;i<l-1;i++){
if(s.charAt(i)=='.')
break;
}
if(++i!=l){
s1=s.substring(0,i-1);
s2=s.substring(i);
for(j=s2.length();j>0;j--){
f=(int)s2.charAt(k)-48;
sum2=sum2+f*(int)Math.pow(10,j-1);
k++;
}
sum2=sum2/Math.pow(10,s2.length());
}else s1=s;
k=0;f=0;
for(j=s1.length();j>0;j--){
f=(int)s1.charAt(k)-48;
sum2=sum2+f*(int)Math.pow(10,j-1);
k++;
}
return sum1+sum2;
}
public void backspace(){
if(st[flag].length()==1)
{st[flag]="";
t.setText(".0");
}
if(st[flag]=="")
Toolkit.getDefaultToolkit().beep();
else{
st[flag]=st[flag].substring(0,st[flag].length()-1);
num[flag]=Double.parseDouble(st[flag]);
if(st[flag].charAt(st[flag].length()-1)=='.'){
t.setText('.'+st[flag].substring(0,st[flag].length()-1));
isDot=false;
}
else
t.setText('.'+st[flag]);
}
}
public void dot(){
if(isDot){
Toolkit.getDefaultToolkit().beep();
}
else{
if(st[flag]==""){
isDot=!isDot;
st[flag]="0.";
t.setText('.'+st[flag].substring(0,st[flag].length()-1));
}
else{
isDot=!isDot;
st[flag]=st[flag]+'.';
t.setText('.'+st[flag].substring(0,st[flag].length()-1));}
}
}
public void setdot(){
if(isDot)
t.setText(st[flag]);
else
t.setText("."+st[flag]);
num[flag]=Double.parseDouble(st[flag]);
}
private void clean(){
st[0]=String.valueOf(num[0]);
st[1]="";
t.setText(st[0]);
}
public static void main(String args[]){
Calculator e=new Calculator();
e.go();
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -