用户JAVA实现windows自带计算器
界面上你可以用布局,也可以直接定位,这个并不难
关于记忆功能的实现,其实你可以在内存中再创建一个JTextField,把内容填充进去,待要使用时再次取出即可,相关代码如下:
if(t.equals("MC")){//将内存文本框清空
if(tf.getText().equals("除数不能为零")||tf.getText().equals("函数输入无效。"))
return;
mathflag=true;
tfMemory.setText("0");
btn[0].setText(" ");
}
else if(t.equals("MR")){//将内存文本框中的内容输出
if(tf.getText().equals("除数不能为零")||tf.getText().equals("函数输入无效。"))
return;
mathflag=true;
tf.setText(tfMemory.getText());
}
else if(t.equals("MS")){//将当前文本框内存存入内存文本框中,并显示M
if(tf.getText().equals("除数不能为零")||tf.getText().equals("函数输入无效。"))
return;
mathflag=true;
tfMemory.setText(tf.getText());
btn[0].setText(" M ");
}
else if(t.equals("M+")){//将当前文本框里的数据和内存文本框中的数据相加后再存入内存文本框中
if(tf.getText().equals("除数不能为零")||tf.getText().equals("函数输入无效。"))
return;
mathflag=true;
tfMemory.setText(String.valueOf(Double.parseDouble(tfMemory.getText())+Double.parseDouble(tf.getText())));
}
关于退格键的实现,具体代码如下
if(tf.getText().equals("除数不能为零")||tf.getText().equals("函数输入无效。"))
return;
String temp=tf.getText();
tf.setText("");
if(temp.length()==1){
tf.setText("0");
return;
}
for(int i=0;i<temp.length()-1;i++){
char a=temp.charAt(i);
tf.setText(tf.getText()+a);
}
关于连加,连乘,连除,连减的实现,其实可以再申明个变量用来保存上一次的按键即可实现,具体看下载代码...