Bang.格鲁↵ 2023-05-20 01:41 采纳率: 100%
浏览 16
已结题

Java图形用户界面未知报错求解决

想问问我这个代码就是在窗口中增加组件,但是出现未知错误了,想问问怎么解决,歇歇
卓业要求的图是这个

img


这是代码:

import javax.swing.*;


class Demo6__4 extends JFrame{
    JLabel lbl1,lbl2,lbl3;//标签
    JFrame jFrame ;
    JCheckBox cb1,cb2,cb3,cb4,cb5;//单选框
    JRadioButton jrb1,jrb2,jrb3,jrb4,jrb5;//单选按钮
    JButton btn1,btn2;
    JTextField txt;

    void Display(){
        jFrame = new JFrame("个人信息调查");
        lbl1 = new JLabel("年龄段:");
        lbl2 = new JLabel("兴趣爱好:");
        lbl3 = new JLabel("调查的结果为:");
        cb1 = new JCheckBox("交友");
        cb2 = new JCheckBox("户外");
        cb3 = new JCheckBox("购物");
        cb4 = new JCheckBox("旅游");
        cb5 = new JCheckBox("其他");
        jrb1 = new JRadioButton("5~15岁");
        jrb2 = new JRadioButton("16~25岁");
        jrb3 = new JRadioButton("26~35岁");
        jrb4 = new JRadioButton("36~45岁");
        jrb5 = new JRadioButton("46~55岁");
        btn1 = new JButton("提交");
        btn1 = new JButton("清空");
        txt = new JTextField("");
        jFrame.add(lbl1);
        jFrame.add(jrb1);jFrame.add(jrb2);jFrame.add(jrb3);jFrame.add(jrb4);jFrame.add(jrb5);
        jFrame.add(lbl2);
        jFrame.add(cb1);jFrame.add(cb2);jFrame.add(cb3);jFrame.add(cb4);jFrame.add(cb5);
        jFrame.add(lbl3);
        jFrame.add(txt);
        jFrame.add(btn1);
        jFrame.add(btn2);
        add(jFrame);



        setDefaultCloseOperation(WindowConstants.EXIT_ON_CLOSE);
        setSize(500,500);
        setResizable(true);
        setVisible(true);
    }

}
public class Demo6_4 {
    public static void main(String[] args) {
        new Demo6__4().Display();
    }
}

顺便想问问我这个代码有没有可以简洁的写法

  • 写回答

2条回答 默认 最新

  • 冰点. 全栈领域优质创作者 2023-05-22 18:05
    关注

    我大概把你代码重构了一下,你可以作为参考

    使用了更加常见的命名规范,将类名改为了“SurveyForm”,将 GUI 组件的变量名改为了小驼峰式命名法。同时,将原来的 Display() 方法分成了两个方法 initComponents() 和 setupLayout(),将 GUI 组件的创建和布局分别放置在这两个方法中,使得代码更加模块化和易读。此外,将 ButtonGroup 用来组合 JRadioButton 组件,将组件放置在不同的 JPanel 容器中,使用 BoxLayout 使得它们垂直排列,最后将这些容器放置在一个主容器中。这样,代码的结构更加清晰,易于维护。

    import javax.swing.*;
     
    public class SurveyForm extends JFrame {
        private JLabel ageLabel, interestLabel, resultLabel;
        private JCheckBox friendCheckbox, outdoorCheckbox, shoppingCheckbox, travelCheckbox, otherCheckbox;
        private JRadioButton ageGroup1, ageGroup2, ageGroup3, ageGroup4, ageGroup5;
        private JButton submitButton, clearButton;
        private JTextField resultTextField;
     
        public SurveyForm() {
            super("个人信息调查");
            initComponents();
            setupLayout();
            setDefaultCloseOperation(WindowConstants.EXIT_ON_CLOSE);
            setSize(500,500);
            setResizable(true);
            setVisible(true);
        }
        
        private void initComponents() {
            ageLabel = new JLabel("年龄段:");
            interestLabel = new JLabel("兴趣爱好:");
            resultLabel = new JLabel("调查的结果为:");
            friendCheckbox = new JCheckBox("交友");
            outdoorCheckbox = new JCheckBox("户外");
            shoppingCheckbox = new JCheckBox("购物");
            travelCheckbox = new JCheckBox("旅游");
            otherCheckbox = new JCheckBox("其他");
            ageGroup1 = new JRadioButton("5~15岁");
            ageGroup2 = new JRadioButton("16~25岁");
            ageGroup3 = new JRadioButton("26~35岁");
            ageGroup4 = new JRadioButton("36~45岁");
            ageGroup5 = new JRadioButton("46~55岁");
            submitButton = new JButton("提交");
            clearButton = new JButton("清空");
            resultTextField = new JTextField();
        }
        
        private void setupLayout() {
            ButtonGroup ageGroup = new ButtonGroup();
            ageGroup.add(ageGroup1);
            ageGroup.add(ageGroup2);
            ageGroup.add(ageGroup3);
            ageGroup.add(ageGroup4);
            ageGroup.add(ageGroup5);
            
            JPanel agePanel = new JPanel();
            agePanel.add(ageLabel);
            agePanel.add(ageGroup1);
            agePanel.add(ageGroup2);
            agePanel.add(ageGroup3);
            agePanel.add(ageGroup4);
            agePanel.add(ageGroup5);
            
            JPanel interestPanel = new JPanel();
            interestPanel.add(interestLabel);
            interestPanel.add(friendCheckbox);
            interestPanel.add(outdoorCheckbox);
            interestPanel.add(shoppingCheckbox);
            interestPanel.add(travelCheckbox);
            interestPanel.add(otherCheckbox);
            
            JPanel resultPanel = new JPanel();
            resultPanel.add(resultLabel);
            resultPanel.add(resultTextField);
            
            JPanel buttonPanel = new JPanel();
            buttonPanel.add(submitButton);
            buttonPanel.add(clearButton);
            
            JPanel mainPanel = new JPanel();
            mainPanel.setLayout(new BoxLayout(mainPanel, BoxLayout.Y_AXIS));
           mainPanel.add(agePanel);
            mainPanel.add(interestPanel);
            mainPanel.add(resultPanel);
            mainPanel.add(buttonPanel);
            
            add(mainPanel);
        }
     
        public static void main(String[] args) {
            new SurveyForm();
        }
    }
    
    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(1条)

报告相同问题?

问题事件

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

悬赏问题

  • ¥15 无法输出helloworld
  • ¥15 高通uboot 打印ubi init err 22
  • ¥20 PDF元数据中的XMP媒体管理属性
  • ¥15 R语言中lasso回归报错
  • ¥15 网站突然不能访问了,上午还好好的
  • ¥15 有没有dl可以帮弄”我去图书馆”秒选道具和积分
  • ¥15 semrush,SEO,内嵌网站,api
  • ¥15 Stata:为什么reghdfe后的因变量没有被发现识别啊
  • ¥15 振荡电路,ADS仿真
  • ¥15 关于#c语言#的问题,请各位专家解答!