java gui界面为什么按钮没显示

package com.gui;

import javax.swing.;
import java.awt.
;

public class gui {
static Double a;
static Double b;
static String string = "";
static String fuhao = "";

public static void main(String[] args) {
    JFrame frame = new JFrame();//实例化一个窗口
    GridLayout layout = new GridLayout(2, 1);//实例化一个网格布局管理器
    frame.setLayout(layout);//窗口应用布局管理器
    frame.setSize(400, 500);//设置窗口宽高
    frame.setLocation(300, 200);//设置窗口初始显示位置
    frame.setVisible(true);//将窗口设置为可见
    frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);//设置窗口关闭的操作

    //上边面板
    JPanel panel1 = new JPanel();
    //记录文本框
    JTextField textField1 = new JTextField(20);
    textField1.setHorizontalAlignment(SwingConstants.RIGHT);//将文本水平对齐方式设置为靠右
    textField1.setEditable(false);//设置为不可编辑
    JLabel label = new JLabel("记录");
    //计数文本框
    JTextField textField = new JTextField(20);
    textField.setHorizontalAlignment(SwingConstants.RIGHT);//将文本水平对齐方式设置为靠右
    textField.setEditable(false);//设置为不可编辑
    //添加一个Clear按钮
    JButton buttonClear = new JButton("Clear");
    //将上述控件添加到panel1面板
    panel1.add(textField1);
    panel1.add(label);
    panel1.add(textField);
    panel1.add(buttonClear);
    //为Clear按钮注册监听器
    buttonClear.addActionListener(e -> {
        textField.setText("");
        textField1.setText("");
        a = 0.0;
        b = 0.0;
        string = "";
        fuhao = "";
    });
    frame.add(panel1);//将panel1面板添加到窗口上

    //下边面板
    JPanel panel2 = new JPanel();
    GridLayout gridLayout = new GridLayout(4, 4);//网格布局管理器
    panel2.setLayout(gridLayout);//应用该布局管理器
    //实例化一些按钮
    JButton button7 = new JButton("7");
    panel2.add(button7);
    JButton button8 = new JButton("8");
    panel2.add(button8);
    JButton button9 = new JButton("9");
    panel2.add(button9);
    JButton buttonChu = new JButton("/");
    panel2.add(buttonChu);
    JButton button4 = new JButton("4");
    panel2.add(button4);
    JButton button5 = new JButton("5");
    panel2.add(button5);
    JButton button6 = new JButton("6");
    panel2.add(button6);
    JButton buttonCheng = new JButton("*");
    panel2.add(buttonCheng);
    JButton button1 = new JButton("1");
    panel2.add(button1);
    JButton button2 = new JButton("2");
    panel2.add(button2);
    JButton button3 = new JButton("3");
    panel2.add(button3);
    JButton buttonJian = new JButton("-");
    panel2.add(buttonJian);
    JButton button0 = new JButton("0");
    panel2.add(button0);
    JButton buttonDian = new JButton(".");
    panel2.add(buttonDian);
    JButton buttonDeng = new JButton("=");
    panel2.add(buttonDeng);
    JButton buttonJia = new JButton("+");
    panel2.add(buttonJia);

    //为每一个数字按钮注册监听器
    button0.addActionListener(e -> {
        string = string + "0";
        textField.setText(string);
    });

    button1.addActionListener(e -> {
        string = string + "1";
        textField.setText(string);
    });

    button2.addActionListener(e -> {
        string = string + "2";
        textField.setText(string);
    });

    button3.addActionListener(e -> {
        string = string + "3";
        textField.setText(string);
    });

    button4.addActionListener(e -> {
        string = string + "4";
        textField.setText(string);
    });

    button5.addActionListener(e -> {
        string = string + "5";
        textField.setText(string);
    });

    button6.addActionListener(e -> {
        string = string + "6";
        textField.setText(string);
    });

    button7.addActionListener(e -> {
        string = string + "7";
        textField.setText(string);
    });

    button8.addActionListener(e -> {
        string = string + "8";
        textField.setText(string);
    });

    button9.addActionListener(e -> {
        string = string + "9";
        textField.setText(string);
    });

    buttonDian.addActionListener(e -> {
        string = string + ".";
        textField.setText(string);
    });

    //为符号键注册监听器
    buttonJia.addActionListener(e -> {
        a = Double.parseDouble(textField.getText());//获取第一个操作数
        fuhao = "+";//获取符号
        textField1.setText(textField.getText() + fuhao);//将其显示在记录文本框
        textField.setText("");//然后清空关于第一个操作数的记录,方便后续的连续计算
        string = "";
    });

    buttonJian.addActionListener(e -> {
        a = Double.parseDouble(textField.getText());
        fuhao = "-";
        textField1.setText(textField.getText() + fuhao);
        textField.setText("");
        string = "";
    });

    buttonCheng.addActionListener(e -> {
        a = Double.parseDouble(textField.getText());
        fuhao = "*";
        textField1.setText(textField.getText() + fuhao);
        textField.setText("");
        string = "";
    });

    buttonChu.addActionListener(e -> {
        a = Double.parseDouble(textField.getText());
        fuhao = "/";
        textField1.setText(textField.getText() + fuhao);
        textField.setText("");
        string = "";
    });

    buttonDeng.addActionListener(e -> {
        string = "";
        b = Double.parseDouble(textField.getText());//记录第二个操作数
        textField1.setText(textField1.getText() + textField.getText() + "=");//显示完整运算式
        //下面是对应符号的运算操作
        switch (fuhao) {
            case "+": {
                Double result = a + b;
                textField.setText(Double.toString(result));
                break;
            }
            case "-": {
                Double result = a - b;
                textField.setText(Double.toString(result));
                break;
            }
            case "*": {
                Double result = a * b;
                textField.setText(Double.toString(result));
                break;
            }
            case "/": {
                Double result = a / b;
                textField.setText(Double.toString(result));
                break;
            }
        }
    });
    frame.add(panel2);//面板添加到窗口
}

}

img

#我想要达到的结果

img

帮你修改了一下,把下面这段代码放在最后就好了,

  frame.setSize(400, 500);//设置窗口宽高
    frame.setLocation(300, 200);//设置窗口初始显示位置
    frame.setVisible(true);//将窗口设置为可见
    frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);//设置窗口关闭的操作

完整代码如下:

package java3.T10;

import javax.swing.*;
import java.awt.*;

public class gui {
    static Double a;
    static Double b;
    static String string = "";
    static String fuhao = "";

    public static void main(String[] args) {
        JFrame frame = new JFrame();//实例化一个窗口
        GridLayout layout = new GridLayout(2, 1);//实例化一个网格布局管理器
        frame.setLayout(layout);//窗口应用布局管理器
        
     
        //上边面板
        JPanel panel1 = new JPanel();
        //记录文本框
        JTextField textField1 = new JTextField(20);
        textField1.setHorizontalAlignment(SwingConstants.RIGHT);//将文本水平对齐方式设置为靠右
        textField1.setEditable(false);//设置为不可编辑
        JLabel label = new JLabel("记录");
        //计数文本框
        JTextField textField = new JTextField(20);
        textField.setHorizontalAlignment(SwingConstants.RIGHT);//将文本水平对齐方式设置为靠右
        textField.setEditable(false);//设置为不可编辑
        //添加一个Clear按钮
        JButton buttonClear = new JButton("Clear");
        //将上述控件添加到panel1面板
        panel1.add(textField1);
        panel1.add(label);
        panel1.add(textField);
        panel1.add(buttonClear);
        //为Clear按钮注册监听器
        buttonClear.addActionListener(e -> {
            textField.setText("");
            textField1.setText("");
            a = 0.0;
            b = 0.0;
            string = "";
            fuhao = "";
        });
        frame.add(panel1);//将panel1面板添加到窗口上
     
        //下边面板
        JPanel panel2 = new JPanel();
        GridLayout gridLayout = new GridLayout(4, 4);//网格布局管理器
        panel2.setLayout(gridLayout);//应用该布局管理器
        //实例化一些按钮
        JButton button7 = new JButton("7");
        panel2.add(button7);
        JButton button8 = new JButton("8");
        panel2.add(button8);
        JButton button9 = new JButton("9");
        panel2.add(button9);
        JButton buttonChu = new JButton("/");
        panel2.add(buttonChu);
        JButton button4 = new JButton("4");
        panel2.add(button4);
        JButton button5 = new JButton("5");
        panel2.add(button5);
        JButton button6 = new JButton("6");
        panel2.add(button6);
        JButton buttonCheng = new JButton("*");
        panel2.add(buttonCheng);
        JButton button1 = new JButton("1");
        panel2.add(button1);
        JButton button2 = new JButton("2");
        panel2.add(button2);
        JButton button3 = new JButton("3");
        panel2.add(button3);
        JButton buttonJian = new JButton("-");
        panel2.add(buttonJian);
        JButton button0 = new JButton("0");
        panel2.add(button0);
        JButton buttonDian = new JButton(".");
        panel2.add(buttonDian);
        JButton buttonDeng = new JButton("=");
        panel2.add(buttonDeng);
        JButton buttonJia = new JButton("+");
        panel2.add(buttonJia);
     
        //为每一个数字按钮注册监听器
        button0.addActionListener(e -> {
            string = string + "0";
            textField.setText(string);
        });
     
        button1.addActionListener(e -> {
            string = string + "1";
            textField.setText(string);
        });
     
        button2.addActionListener(e -> {
            string = string + "2";
            textField.setText(string);
        });
     
        button3.addActionListener(e -> {
            string = string + "3";
            textField.setText(string);
        });
     
        button4.addActionListener(e -> {
            string = string + "4";
            textField.setText(string);
        });
     
        button5.addActionListener(e -> {
            string = string + "5";
            textField.setText(string);
        });
     
        button6.addActionListener(e -> {
            string = string + "6";
            textField.setText(string);
        });
     
        button7.addActionListener(e -> {
            string = string + "7";
            textField.setText(string);
        });
     
        button8.addActionListener(e -> {
            string = string + "8";
            textField.setText(string);
        });
     
        button9.addActionListener(e -> {
            string = string + "9";
            textField.setText(string);
        });
     
        buttonDian.addActionListener(e -> {
            string = string + ".";
            textField.setText(string);
        });
     
        //为符号键注册监听器
        buttonJia.addActionListener(e -> {
            a = Double.parseDouble(textField.getText());//获取第一个操作数
            fuhao = "+";//获取符号
            textField1.setText(textField.getText() + fuhao);//将其显示在记录文本框
            textField.setText("");//然后清空关于第一个操作数的记录,方便后续的连续计算
            string = "";
        });
     
        buttonJian.addActionListener(e -> {
            a = Double.parseDouble(textField.getText());
            fuhao = "-";
            textField1.setText(textField.getText() + fuhao);
            textField.setText("");
            string = "";
        });
     
        buttonCheng.addActionListener(e -> {
            a = Double.parseDouble(textField.getText());
            fuhao = "*";
            textField1.setText(textField.getText() + fuhao);
            textField.setText("");
            string = "";
        });
     
        buttonChu.addActionListener(e -> {
            a = Double.parseDouble(textField.getText());
            fuhao = "/";
            textField1.setText(textField.getText() + fuhao);
            textField.setText("");
            string = "";
        });
     
        buttonDeng.addActionListener(e -> {
            string = "";
            b = Double.parseDouble(textField.getText());//记录第二个操作数
            textField1.setText(textField1.getText() + textField.getText() + "=");//显示完整运算式
            //下面是对应符号的运算操作
            switch (fuhao) {
                case "+": {
                    Double result = a + b;
                    textField.setText(Double.toString(result));
                    break;
                }
                case "-": {
                    Double result = a - b;
                    textField.setText(Double.toString(result));
                    break;
                }
                case "*": {
                    Double result = a * b;
                    textField.setText(Double.toString(result));
                    break;
                }
                case "/": {
                    Double result = a / b;
                    textField.setText(Double.toString(result));
                    break;
                }
            }
        });
        frame.add(panel2);//面板添加到窗口
        frame.setSize(400, 500);//设置窗口宽高
        frame.setLocation(300, 200);//设置窗口初始显示位置
        frame.setVisible(true);//将窗口设置为可见
        frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);//设置窗口关闭的操作
    }
}

您好,我是有问必答小助手,您的问题已经有小伙伴帮您解答,感谢您对有问必答的支持与关注!
PS:问答VIP年卡 【限时加赠:IT技术图书免费领】,了解详情>>> https://vip.csdn.net/askvip?utm_source=1146287632