有人知道怎么能在旁边的文本框里面输出计算过程吗?
import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
class Caculator {
TextField showresult = new TextField(40); //显示文本框
StringBuffer s1 = new StringBuffer(); //记录运算数字,以及保留结果
StringBuffer s2 = new StringBuffer(); //记录运算数字,保留上一个输入的数字或运算结果
static String flag = new String(); //标记运算符号:+,-,*,/
boolean start = true; //标记运算开始或结束,保证一次运算之后,第二次进行运算时能同时清空显示界面,即s1为空
public void init(){
//主界面
JFrame window = new JFrame("计算器");
JPanel panelleft=new JPanel();
panelleft.setLayout(new BorderLayout());
JTextArea testShow=new JTextArea();
JPanel p1 = new JPanel();//文本框所在面板
p1.add(showresult);
panelleft.add(p1,BorderLayout.NORTH);
JPanel p2 = new JPanel();
p2.setLayout(new GridLayout(1,3));
//panelleft.add(p2,BorderLayout.CENTER);
//动作监听器
ActionListener listen =new ActionListener() {
public void actionPerformed(ActionEvent e) {
//输入数字0~9
if(e.getActionCommand()=="0"){
if(!s1.toString().equals(new String())){//判断是否为
if(!start){
//s1清零,保证可以重新输入数字
s1.delete(0, s1.length());
}
start = true;
showresult.setText(s1.append("0").toString());
}
}
if(e.getActionCommand()=="1"){
if(!start){
s1.delete(0, s1.length());
}
start = true;
showresult.setText(s1.append("1").toString());
}
if(e.getActionCommand()=="2"){
if(!start){
s1.delete(0, s1.length());
}
start = true;
showresult.setText(s1.append("2").toString());
}
if(e.getActionCommand()=="3"){
if(!start){
s1.delete(0, s1.length());
}
start = true;
showresult.setText(s1.append("3").toString());
}
if(e.getActionCommand()=="4"){
if(!start){
s1.delete(0, s1.length());
}
start = true;
showresult.setText(s1.append("4").toString());
}
if(e.getActionCommand()=="5"){
if(!start){
s1.delete(0, s1.length());
}
start = true;
showresult.setText(s1.append("5").toString());
}
if(e.getActionCommand()=="6"){
if(!start){
s1.delete(0, s1.length());
}
start = true;
showresult.setText(s1.append("6").toString());
}
if(e.getActionCommand()=="7"){
if(!start){
s1.delete(0, s1.length());
}
start = true;
showresult.setText(s1.append("7").toString());
}
if(e.getActionCommand()=="8"){
if(!start){
s1.delete(0, s1.length());
}
start = true;
showresult.setText(s1.append("8").toString());
}
if(e.getActionCommand()=="9"){
if(!start){
s1.delete(0, s1.length());
}
start = true;
showresult.setText(s1.append("9").toString());
}
//输入小数点
if(e.getActionCommand()=="."){
if(!start){
s1.delete(0, s1.length());
}
start=true;
if(s1.toString().equals(new String()))//判断是否有
showresult.setText(s1.append("0.").toString());
else if(s1.length()==1&&s1.charAt(0)=='-')
showresult.setText(s1.append("0.").toString());
else
showresult.setText(s1.append(".").toString());
}
//输入负号
if(e.getActionCommand()=="+/-"){
if(!start){
s1.delete(0, s1.length());
}
start = true;
if(s1.toString().equals(new String()))
showresult.setText(s1.append('-').toString());
}
//退格Backspace
if(e.getActionCommand()=="Backspace"){
start = true;
if(s1.length()!=0){
//删除最后输入的一位
s1.deleteCharAt(s1.length()-1);
showresult.setText(s1.toString());
}
}
//归零CE
if(e.getActionCommand()=="CE"){
//清空所有,start标记设为true
start = true;
s1.delete(0, s1.length());
s2.delete(0, s2.length());
showresult.setText(s1.toString());
}
//清除C
if(e.getActionCommand()=="C"){
//清空当前输入,即s1清零
start = true;
s1.delete(0, s1.length());
showresult.setText(s1.toString());
}
//加号
if(e.getActionCommand()=="+"){
start = true;
flag="+";
//s2接收s1的值
s2.append(String.valueOf(s1.toString()));
//s1清零,重新接收下一个数据
s1.delete(0, s1.length());
showresult.setText(s1.toString());
}
//减号
if(e.getActionCommand()=="-"){
start = true;
flag="-";
s2.append(String.valueOf(s1.toString()));
s1.delete(0, s1.length());
showresult.setText(s1.toString());
}
//乘号
if(e.getActionCommand()=="*"){
start = true;
flag="*";
s2.append(String.valueOf(s1.toString()));
s1.delete(0, s1.length());
showresult.setText(s1.toString());
}
//除号
if(e.getActionCommand()=="/"){
start = true;
flag="/";
s2.append(String.valueOf(s1.toString()));
s1.delete(0, s1.length());
showresult.setText(s1.toString()); }
//开根号
if(e.getActionCommand()=="sqrt"){
start =false;
double s=Double.parseDouble(s1.toString());
s1.delete(0, s1.length());
showresult.setText(s1.append(String.valueOf(Math.sqrt(s))).toString()); }
//求%
if(e.getActionCommand()=="%"){
start =false;
double s=Double.parseDouble(s1.toString());
s1.delete(0, s1.length());
showresult.setText(s1.append(String.valueOf(s/100)).toString()); }
//求1/x
if(e.getActionCommand()=="1/x"&&!s1.toString().equals(new String())&&Double.parseDouble(s1.toString())!=0){
start =false;
double s=Double.parseDouble(s1.toString());
s1.delete(0, s1.length());
showresult.setText(s1.append(String.valueOf(1/s)).toString());}
//求结果
if(e.getActionCommand()=="="&&s1.length()!=0&&s2.length()!=0){
//start标记为false
start =false;
//分别获取s1和s2的值
double s4=Double.parseDouble(s1.toString());
double s3=Double.parseDouble(s2.toString());
//清空s1和s2,便于开始下一次运算
s1.delete(0, s1.length());
s2.delete(0, s2.length());
//四则运算
if(flag=="+"){
showresult.setText(s1.append(String.valueOf(s3+s4)).toString());}
if(flag=="-"){
showresult.setText(s1.append(String.valueOf(s3-s4)).toString()); }
if(flag=="*"){
showresult.setText(s1.append(String.valueOf(s3*s4)).toString());}
if(flag=="/"){
showresult.setText(s1.append(String.valueOf(s3/s4)).toString());}}} };