eclipse报错 "com.bbm.model.Users.getName()" because "this.user" is null

给了一个图书借阅管理系统的源代码,让我们改其中的错误,其中在bookborrow.java中运行代码出现了这个错误:

img


查了好多方法都不行
为什么user为空了呢?该如何改呢?
以下是原代码:

package com.bbm.view;
import java.awt.Bordhttps://img-mid.csdnimg.cn/release/static/image/mid/ask/072408244936147.png "#left")
erLayout;
import java.awt.Dimension;
import java.awt.GridLayout;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.sql.Date;
import java.text.DateFormat;
import java.text.SimpleDateFormat;
import java.util.List;

import javax.swing.DefaultComboBoxModel;
import javax.swing.JButton;
import javax.swing.JFormattedTextField;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JOptionPane;
import javax.swing.JPanel;
import javax.swing.JScrollPane;
import javax.swing.JTable;
import javax.swing.JTextField;
import javax.swing.SwingConstants;
import javax.swing.border.TitledBorder;

import com.bbm.db.BookBorrowDao;
import com.bbm.db.BookDao;
import com.bbm.db.ReaderDao;
import com.bbm.model.Book;
import com.bbm.model.BorrowBook;
import com.bbm.model.Reader;
import com.bbm.model.Users;

public class BookBorrow extends JFrame {
    
    private JPanel selectJP,select_conditionJP,select_resultJP,borrowJP,buttonJP;
    private JTextField readeridJTF,readernameJTF,readertypeJTF,ISBNJTF,booknameJTF,authorJTF,printtimeJTF,publishJTF,publishdateJTF,unitpriceJTF,dateJTF,userJTF,booktypeJTF;
    private JLabel readeridJL,readernameJL,readertypeJL,ISBNJL,booknameJL,authorJL,categoryJL,printtimeJL,publishJL,publishdateJL,unitpriceJL,dateJL,userJL;
    private JTable table_1;   
    private JFormattedTextField borrowdate;    
    private JScrollPane jscrollPane;
    private Users user = Login.getUser();
   
    String[] borrowbooksearch = {"图书编号", "图书名称","借书日期"};
    // 取数据库中图书相关信息放入表格中
    private Object[][] getSelect(List<BorrowBook> list) {
        
        
        Object[][] results = new Object[list.size()][borrowbooksearch.length];
        for (int i = 0; i < list.size(); i++) {
            BorrowBook borrowbook = list.get(i);
            results[i][0] = borrowbook.getISBN();                                 
            List<Book> list1=BookDao.selectBookByISBN(borrowbook.getISBN());
            for (int j = 0; j < list1.size(); j++) {
                Book book = list1.get(j); 
                results[i][1]=book.getBookname();
            }
            results[i][2] = borrowbook.getBorrowdate();                      
        }
        return results;
    }
      
    public BookBorrow(){        
        
        setTitle("图书借阅");
        setBounds(500, 300, 600, 500);
                
        selectJP = new JPanel();        
        TitledBorder tb=new TitledBorder("读者借阅信息");
        selectJP.setBorder(tb);
        selectJP.setLayout(new BorderLayout());
        
        //查询条件面板
        select_conditionJP = new JPanel();
        readeridJL=new JLabel("读者编号:");
        select_conditionJP.add(readeridJL);
        readeridJTF = new JTextField(); 
        readeridJTF.addActionListener(new ReaderidAction());
        readeridJTF.setColumns(10);
        select_conditionJP.add(readeridJTF);
        
        readernameJL=new JLabel("读者姓名:");
        select_conditionJP.add(readernameJL);
        readernameJTF = new JTextField();        
        readernameJTF.setColumns(10);
        select_conditionJP.add(readernameJTF);
        
        readertypeJL=new JLabel("读者类别:");
        select_conditionJP.add(readertypeJL);
        readertypeJTF = new JTextField();        
        readertypeJTF.setColumns(10);
        select_conditionJP.add(readertypeJTF);
        
        selectJP.add(select_conditionJP, BorderLayout.NORTH);
        //查询结果面板
        select_resultJP = new JPanel();
        jscrollPane = new JScrollPane();
        Object[][] results = getSelect(BookBorrowDao.selectBorrowBookByReaderId(readeridJTF.getText().trim()));        
        table_1 = new JTable(results, borrowbooksearch);
        jscrollPane.setViewportView(table_1);
        //显示边框
        jscrollPane.setPreferredSize(new Dimension(400, 140));
        //不显示边框        
        select_resultJP.add(jscrollPane);
        selectJP.add(select_resultJP,BorderLayout.CENTER);
        
        borrowJP = new JPanel();
        borrowJP.setBorder(new TitledBorder(null, "图书借阅", TitledBorder.DEFAULT_JUSTIFICATION, TitledBorder.DEFAULT_POSITION, null, null));
                
        //使用布局GridLayout
        final GridLayout gridLayout = new GridLayout(5, 4);
        gridLayout.setVgap(8);
        gridLayout.setHgap(8);
        borrowJP.setLayout(gridLayout);
        
        ISBNJL=new JLabel("ISBN:");
        ISBNJL.setHorizontalAlignment(SwingConstants.CENTER);
        borrowJP.add(ISBNJL);
        ISBNJTF=new JTextField();
        ISBNJTF.addActionListener(new ISBNAction());
        ISBNJTF.setColumns(20);
        borrowJP.add(ISBNJTF);    
        
        categoryJL=new JLabel("类别:");
        categoryJL.setHorizontalAlignment(SwingConstants.CENTER);
        borrowJP.add(categoryJL);
        booktypeJTF=new JTextField();
        booktypeJTF.setColumns(20);        
        borrowJP.add(booktypeJTF);
        
        booknameJL=new JLabel("书名:");
        booknameJL.setHorizontalAlignment(SwingConstants.CENTER);
        borrowJP.add(booknameJL);
        booknameJTF=new JTextField();
        booknameJTF.setColumns(20);
        borrowJP.add(booknameJTF);
        
        authorJL=new JLabel("作者:");
        authorJL.setHorizontalAlignment(SwingConstants.CENTER);
        borrowJP.add(authorJL);
        authorJTF=new JTextField();
        authorJTF.setColumns(20);
        borrowJP.add(authorJTF);
        
        publishJL=new JLabel("出版社:");
        publishJL.setHorizontalAlignment(SwingConstants.CENTER);
        borrowJP.add(publishJL);
        publishJTF=new JTextField();
        borrowJP.add(publishJTF);        
        
        publishdateJL=new JLabel("出版日期:");
        publishdateJL.setHorizontalAlignment(SwingConstants.CENTER);
        borrowJP.add(publishdateJL);
        publishdateJTF=new JTextField();
        borrowJP.add(publishdateJTF);
        
        printtimeJL=new JLabel("印刷次数:");
        printtimeJL.setHorizontalAlignment(SwingConstants.CENTER);
        borrowJP.add(printtimeJL);
        printtimeJTF=new JTextField();
        borrowJP.add(printtimeJTF);
        
        unitpriceJL=new JLabel("单价:");
        unitpriceJL.setHorizontalAlignment(SwingConstants.CENTER);
        borrowJP.add(unitpriceJL);
        unitpriceJTF=new JTextField();
        borrowJP.add(unitpriceJTF);
        
        dateJL=new JLabel("当前日期:");
        dateJL.setHorizontalAlignment(SwingConstants.CENTER);
        borrowJP.add(dateJL);        
        borrowdate = new JFormattedTextField(DateFormat.getDateInstance());
        borrowdate.setValue(new java.util.Date());        
        borrowJP.add(borrowdate);
        
        userJL=new JLabel("操作人员:");
        userJL.setHorizontalAlignment(SwingConstants.CENTER);
        borrowJP.add(userJL);        
        userJTF=new JTextField();
        userJTF.setText(user.getName());
        userJTF.setColumns(20);
        userJTF.setEditable(false);
        borrowJP.add(userJTF);
        
        //按钮面板设计
        buttonJP=new JPanel();
        JButton borrowButton=new JButton("借阅");
        borrowButton.addActionListener(new BorrowBookActionListener());
        JButton closeButton=new JButton("关闭");
        closeButton.addActionListener(new CloseActionListener());
        buttonJP.add(borrowButton);
        buttonJP.add(closeButton);
                
        this.add(selectJP,BorderLayout.NORTH);
        this.add(borrowJP,BorderLayout.CENTER);
        this.add(buttonJP,BorderLayout.SOUTH);
               
        setVisible(true);
    }
     class ReaderidAction implements ActionListener{
            public void actionPerformed(ActionEvent arg0) {
                //检索读者的姓名和类型
                List<Reader> list=ReaderDao.selectReaderById(readeridJTF.getText().trim());
                for (int i = 0; i < list.size(); i++) {
                    Reader reader = list.get(i);
                    readernameJTF.setText(reader.getName());
                    readernameJTF.setEditable(false);
                    //获取读者类型名称                    
                    readertypeJTF.setText(reader.getTypename());    
                    readertypeJTF.setEditable(false);
                }
                //检索读者的借书情况
                 Object[][] results = getSelect(BookBorrowDao.selectBorrowBookByReaderId(readeridJTF.getText().trim()));
                    table_1 = new JTable(results, borrowbooksearch);
                    jscrollPane.setViewportView(table_1);
            }
        }
     //输入图书编号ISBN后回车,将图书的其余信息显示出来
     class ISBNAction implements ActionListener{
            public void actionPerformed(ActionEvent arg0) {
                List<Book> list=BookDao.selectBookByISBN(ISBNJTF.getText().trim());
                for (int i = 0; i < list.size(); i++) {
                    Book book = list.get(i);                    
                    //获取图书类型名称
                    
                    booktypeJTF.setText(book.getTypename());          
                    
                    booknameJTF.setText(book.getBookname());
                    authorJTF.setText(book.getAuthor());
                    publishJTF.setText(book.getPublish());
                    DateFormat format = new SimpleDateFormat("yyyy-MM-dd");
                    String date=format.format(book.getPublishdate());
                    publishdateJTF.setText(date);
                    String time=String.valueOf(book.getPrinttime());
                    printtimeJTF.setText(time);
                    String unitprice=String.valueOf(book.getUnitprice());
                    unitpriceJTF.setText(unitprice);
                }
            }
        }

     class BorrowBookActionListener implements ActionListener{
             public void actionPerformed(ActionEvent arg0) {
                 String readerid=readeridJTF.getText().trim();
                 String ISBN=ISBNJTF.getText().trim();                 
                 Date borrowtime=Date.valueOf(borrowdate.getText().trim());                 
                 int i = BookBorrowDao.borrowBook(readerid,ISBN,borrowtime);
                 System.out.println(i);
                 if (i == 1) {
                      JOptionPane.showMessageDialog(null, "借阅成功");                    
                   //借阅之后,更新读者借阅图书的信息
                     Object[][] results = getSelect(BookBorrowDao.selectBorrowBookByReaderId(readeridJTF.getText().trim()));
                        table_1 = new JTable(results, borrowbooksearch);
                        jscrollPane.setViewportView(table_1);
                  }
             }
         }
     class CloseActionListener implements ActionListener { // 添加关闭按钮的事件监听器
            @Override
            public void actionPerformed(final ActionEvent e) {
                setVisible(false);
            }
        }    
     public static void main(String[] args) {
        new BookBorrow();
    }
}

Login的值什么时候给的
看一下Login中赋值的地方