Cannot read field “parent“ because “comp“ is null

这篇博客探讨了在Java编程中遇到'Cannot read field because "parent" is null'错误的问题。通过删除特定代码段('ridPanel'和'this.add(ridPanel)'),成功避免了空指针异常,实现了程序的正常执行。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

public class addreader extends JFrame {
    private JButton addreaderButton;
    private JLabel id,name,ic,tel;
    private JTextField readerid,readername, readeric,readertel;
    private JPanel idPanel,namePanel,icPanel, ridPanel,telPanel,buttonPanel;
                                                //这里的ridPanel是多余的,把这里删掉

    public addreader() {
        this.setLayout(new GridLayout(5,1));
        this.setDefaultCloseOperation(JFrame.DISPOSE_ON_CLOSE);
        idPanel = new JPanel(new FlowLayout());
        namePanel = new JPanel(new FlowLayout());
        icPanel = new JPanel(new FlowLayout());
        telPanel=new JPanel(new FlowLayout());
        buttonPanel = new JPanel(new FlowLayout());
        prepareUi();
    }
    public void showUi() {
        buttonPanel.add(addreaderButton);

        idPanel.add(id);
        idPanel.add(readerid);

        namePanel.add(name);
        namePanel.add(readername);

        icPanel.add(ic);
        icPanel.add(readeric);

        telPanel.add(tel);
        telPanel.add(readertel);

        this.add(idPanel);
        this.add(namePanel);
        this.add(icPanel);
        this.add(ridPanel);//这个多余,把这个删掉
        this.add(telPanel);
        this.add(buttonPanel);

        this.pack();
        this.setLocationRelativeTo(null);
        this.setVisible(true);
    }
    private void prepareUi() {
        id = new JLabel("读者编号:");
        id.setFont(new Font("宋体",0,20));
        readerid = new JTextField();
        readerid.setFont(new Font("宋体",0,20));
        readerid.setColumns(30);

        name = new JLabel("姓名:");
        name.setFont(new Font("宋体",0,20));
        readername = new JTextField();
        readername.setFont(new Font("宋体",0,20));
        readername.setColumns(30);

        ic = new JLabel("身份证号:");
        ic.setFont(new Font("宋体",0,20));
        readeric = new JTextField();
        readeric.setFont(new Font("宋体",0,20));
        readeric.setColumns(30);

        tel  = new JLabel("电话号码:");
        tel.setFont(new Font("宋体",0,20));
        readertel = new JTextField();
        readertel.setFont(new Font("宋体",0,20));
        readertel.setColumns(30);

        addreaderButton = new JButton("添加");
        addreaderButton.setSize(8,20);
        addreaderButton.setFont(new Font("宋体",0,20));
        addreaderButton.addActionListener(new ActionListener() {
            @Override
            public void actionPerformed(ActionEvent e) {
                addReaderButtonActionPerformed(e);
            }
        });
    }
}

解决办法如代码注释所示,把“ridPanel”和“this.add(ridPanel)删掉,成功执行。

extends :继承一个已有的类,被继承的类称为父类 (超类,基类),新的类称为子类 (派生类)

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值