java计算器编写,请问我要怎样可以把所输入进去式子符号都一起显示,按现在的改一下的话


package test;
import javax.swing.*;
import java.awt.*;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.math.BigDecimal;
import java.util.Vector;

public class test8 extends JFrame {
    JTextField result_TextField;
 // 操作数1,为了程序的安全,初值一定要设置,这里我们设置为0。
    String str1 = "0";//操作数1
    String str2 = "0"; //操作数2
    String result = "0"; //运算结果
    // 以下k1至k5为状态开关
    // 开关1用于选择输入方向,将要写入str1或str2
    // 为 1 时写入 str1,为 2时写入 str2
    int k1 = 1;
    // 开关 2 用于记录符号键的次数
    // 如果 k2>1 说明进行的是 2+3-9+8 这样的多符号运算
    int k2 = 1;
    // 开关3用于标识 str1 是否可以被清 0
    // 等于 1 时可以,不等于1时不能被清0
    int k3 = 1;
    // 开关4用于标识 str2 是否可以被清 0
    // 等于 1 时可以,不等于1时不能被清0
    int k4 = 1;
    // 开关5用于控制小数点可否被录入
    // 等于1时可以,不为1时,输入的小数点被丢掉
    int k5 = 1;
    //开关6用于控制正负号输入
    int k6 = 1;
    // store的作用类似于寄存器,用于记录是否连续按下符号键
    JButton store;
    String signal;
    //vt 存储之前输入的运算符
    Vector vt = new Vector(20, 10);
    public test8(){
        //创建一个JTextField对象并初始化。
        // JTextField用于显示操作和计算结果的文本框。
        // 参数 20 表明可以显示 20 列的文本内容
        result_TextField = new JTextField(20);
        // 清除按钮
        JButton clear_Button = new JButton("C");
        // 数字键0到9
        JButton button0 = new JButton("0");
        JButton button1 = new JButton("1");
        JButton button2 = new JButton("2");
        JButton button3 = new JButton("3");
        JButton button4 = new JButton("4");
        JButton button5 = new JButton("5");
        JButton button6 = new JButton("6");
        JButton button7 = new JButton("7");
        JButton button8 = new JButton("8");
        JButton button9 = new JButton("9");
        // 计算命令按钮,加减乘除以及小数点、正负号等
        JButton button_Dian = new JButton(".");
        JButton button_jia = new JButton("+");
        JButton button_jian = new JButton("-");
        JButton button_cheng = new JButton("*");
        JButton button_chu = new JButton("/");
        JButton button_dy = new JButton("=");
        JButton button_zhengfu = new JButton("+/-");
        // 两个标签
        JLabel label1 = new JLabel();
        JLabel label2 = new JLabel();
        //一个面板
        JPanel panel = new JPanel(new GridLayout(5, 4));
        //在面板中添加标签和按钮
        panel.add(label1); panel.add(label2);
        panel.add(clear_Button); panel.add(button_dy);
        panel.add(button0); panel.add(button1);
        panel.add(button2); panel.add(button_jia);
        panel.add(button3); panel.add(button4);
        panel.add(button5); panel.add(button_jian);
        panel.add(button6); panel.add(button7);
        panel.add(button8); panel.add(button_cheng);
        panel.add(button9); panel.add(button_zhengfu);
        panel.add(button_Dian); panel.add(button_chu);
        //0-9添加监听器
        button0.addActionListener(new Listener());
        button1.addActionListener(new Listener());
        button2.addActionListener(new Listener());
        button3.addActionListener(new Listener());
        button4.addActionListener(new Listener());
        button5.addActionListener(new Listener());
        button6.addActionListener(new Listener());
        button7.addActionListener(new Listener());
        button8.addActionListener(new Listener());
        button9.addActionListener(new Listener());
        //小数点添加监听器
        button_Dian.addActionListener(new Listener_xiaos());
        //+-*/添加监听器
        button_jia.addActionListener(new Listener_signal());
        button_jian.addActionListener(new Listener_signal());
        button_cheng.addActionListener(new Listener_signal());
        button_chu.addActionListener(new Listener_signal());
        //等于号添加监听器
        button_dy.addActionListener(new Listener_dy());
        //清除键添加监听器
        clear_Button.addActionListener(new Listener_clear());
        //正负号添加监听器
        button_zhengfu.addActionListener(new ActionListener() {
            public void actionPerformed(ActionEvent e) {
                if(k6 == 1){
                    k6 = 2;
                    if(k1 == 1){
                        str1 = "-" + str1;
                        result_TextField.setText(str1);
                    } else if(k1 == 2) {
                        str2 = "-" + str2;
                        result_TextField.setText(str2);
                    }
                } else if(k6 == 2){
                    if(k1 == 1){
                        str1 = str1.substring(1);
                        result_TextField.setText(str1);
                    } else if(k1 == 2) {
                        str2 = str2.substring(1);
                        result_TextField.setText(str2);
                    }
                    k6 = 1;
                }

            }
        });
        this.add(result_TextField, BorderLayout.NORTH);
        this.add(panel, BorderLayout.CENTER);
        this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
        this.setBounds(300, 300, 300, 400);
        this.setVisible(true);
        this.setTitle("计算器");
    }
    //Listener类中编写的是数字键的响应逻辑。
    class Listener implements ActionListener {
        public void actionPerformed(ActionEvent e) {
            String ss = ((JButton)e.getSource()).getText();
            store = (JButton)e.getSource();
            if(k1 == 1){//输入第一个数
                if(k3 == 1){//第一个数可以被清零
                    str1 = "";
                    k5 = 1;
                }
                str1 = str1 + ss;
                k3 = k3 + 1;
                if(k6 != 1){//正负号的输入
                    str1 = "-" + str1;
                    k6 = 1;
                }
                result_TextField.setText(str1);
            } else if (k1 == 2) {
                if(k4 == 1){//str2可以被清零
                    str2 = "";
                    k5 = 1;//小数点是否可以被输入
                }
                str2 = str2 + ss;
                k4 = k4 + 1;
                if(k6 != 1){
                    str2 = "-" + str2;
                    k6 = 1;
                }
                result_TextField.setText(str2);
            }
        }
    }
    //Listener_signal类中编写了运算符号键的响应逻辑
    class Listener_signal implements ActionListener {
        public void actionPerformed(ActionEvent e) {
            k6 = 1;
            String ss2 = ((JButton)e.getSource()).getText();
            store = (JButton)e.getSource();
            vt.add(store);
            if(k2 == 1){
                k1 = 2;
                k5 = 1;
                signal = ss2;
                k2 = k2 + 1;
            } else {
                int a = vt.size();
                JButton c = (JButton)vt.get(a - 2);
                if(c.getText().equals("+")||c.getText().equals("-")||c.getText().equals("*")||c.getText().equals("/")){
                    cal();
                    str1 = result;
                    k1 = 2;
                    k5 = 1;
                    k4 = 1;
                    signal = ss2;
                }
                k2 = k2 + 1;
            }

        }
    }
    //Listener_clear类中编写了清除键的响应逻辑
    class Listener_clear implements ActionListener {
        public void actionPerformed(ActionEvent e) {
            result = "0";
            str1 = "0";
            str2 = "0";
            result_TextField.setText("");
            k1 = 1;
            k2 = 1;
            k3 = 1;
            k4 = 1;
            k5 = 1;
            k6 = 1;
            signal = "";
        }
    }
    //Listener_dy类中编写的是等于号键的响应逻辑
    class Listener_dy implements ActionListener {
        public void actionPerformed(ActionEvent e) {
            store = (JButton)e.getSource();
            vt.add(store);
            cal();
            k1 = 1;
            k2 = 1;
            k3 = 1;
            k4 = 1;
            str1 = result;
        }
    }
    //Listener_xiaos类中编写的是小数点键的相应逻辑
    class Listener_xiaos implements ActionListener {
        public void actionPerformed(ActionEvent e) {
            store = (JButton)e.getSource();
            vt.add(store);
            if(k5 == 1){
                String ss2 = ((JButton)e.getSource()).getText();
                if(k1 == 1){
                    if(k3 == 1){
                        str1 = "";
                        k5 = 1;
                    }
                    str1 = str1 + ss2;
                    k3 = k3 + 1;
                    result_TextField.setText(str1);
                } else if(k1 == 2){
                    if(k4 == 1){
                        str2 = "";
                        k5 = 1;
                    }
                    str2 = str2 + ss2;
                    k4 = k4 + 1;
                    result_TextField.setText(str2);
                }
            }
            k5 = k5 + 1;
        }
    }
    // calc()方法中编写了计算逻辑的实现。
    public void cal() {
        double a2, b2;
        String c = signal;
        double result2 = 0;
        if(c.equals("")){
            result_TextField.setText("please input operator");
        } else {
            if(str1.equals(".")){
                str1 = "0.0";
            }
            if(str2.equals(".")){
                str2 = "0.0";
            }
            a2 = Double.valueOf(str1).doubleValue();
            b2 = Double.valueOf(str2).doubleValue();
            if(c.equals("+")){
                result2 = a2 + b2;
            }
            if(c.equals("-")){
                result2 = a2 - b2;
            }
            if(c.equals("*")){
                BigDecimal m1 = new BigDecimal(Double.toString(a2));
                BigDecimal m2 = new BigDecimal(Double.toString(b2));
                result2 = m1.multiply(m2).doubleValue();
            }
            if(c.equals("/")){
                if(b2 == 0){
                    result2 = 0;
                } else {
                    result2 = a2 / b2;
                }
            }
            result = String.valueOf(result2);
            result_TextField.setText(result);
        }
    }

    public static void main(String[] args) {
        new test8();
    }
}