小鱼干dd 2022-04-11 22:24 采纳率: 100%
浏览 121
已结题

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

  • 写回答

2条回答 默认 最新

  • 关注

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

      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);//设置窗口关闭的操作
        }
    }
    
    
    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论 编辑记录
查看更多回答(1条)

报告相同问题?

问题事件

  • 系统已结题 4月20日
  • 已采纳回答 4月12日
  • 创建了问题 4月11日

悬赏问题

  • ¥60 版本过低apk如何修改可以兼容新的安卓系统
  • ¥25 由IPR导致的DRIVER_POWER_STATE_FAILURE蓝屏
  • ¥50 有数据,怎么建立模型求影响全要素生产率的因素
  • ¥50 有数据,怎么用matlab求全要素生产率
  • ¥15 TI的insta-spin例程
  • ¥15 完成下列问题完成下列问题
  • ¥15 C#算法问题, 不知道怎么处理这个数据的转换
  • ¥15 YoloV5 第三方库的版本对照问题
  • ¥15 请完成下列相关问题!
  • ¥15 drone 推送镜像时候 purge: true 推送完毕后没有删除对应的镜像,手动拷贝到服务器执行结果正确在样才能让指令自动执行成功删除对应镜像,如何解决?