【问题标题】:Java Data Display from database?来自数据库的Java数据显示?
【发布时间】:2023-03-22 02:03:01
【问题描述】:
package grid;

import java.awt.*;
import java.sql.*;
import java.util.*;
import javax.swing.*;
import java.lang.String;

public class ViewData extends JFrame{
   JTable table;
   String rowData[][]=new String[100][100];
    String columnNames[]=new String[3] ;
     static ViewData r;
    public  ViewData() throws ClassNotFoundException, SQLException{
        setLayout(new FlowLayout());
        setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
        setVisible(true);    

        columnNames[0] ="Name";
        columnNames[1] ="Regno";
        columnNames[2] ="Email";

        r.load();
        table=new JTable(rowData, columnNames);
        add(new JScrollPane(table));
        pack();
    }
   public static void main(String[] args) throws ClassNotFoundException, SQLException {
        r=new ViewData();
    }

     public void load() throws ClassNotFoundException, SQLException{
            Class.forName("org.apache.derby.jdbc.ClientDriver");
            Connection con=DriverManager.getConnection("jdbc:derby://localhost:1527/swap_db","swap","swap");
            String q="SELECT * FROM STUDENT";
            Statement stm=con.createStatement();
            ResultSet rs=stm.executeQuery(q);
            int i=0;
            while(rs.next()){
                String name=rs.getString(1);
                String regno=rs.getString(2);
                String email=rs.getString(3);

                rowData[i][0]=name;
                rowData[i][1]=regno;
                rowData[i][2]=email;
                i++;

            }        
        }
}

我试图在 JTable 中显示数据库中的数据,但它显示以下错误。

线程“main”中的异常 java.lang.NullPointerException
在 grid.ViewData.(ViewData.java:23)
在 grid.ViewData.main(ViewData.java:29)
已停止构建(总时间:5 秒)

这个程序有什么错误?

【问题讨论】:

  • 某事为空。调试你的代码。

标签: java database swing jtable derby


【解决方案1】:

以下语句调用 ViewData 的构造函数;

r=new ViewData();

但是在构造函数内部,你调用了:

r.load();

r 在构造函数返回之前为空,这就是它抛出 NullPointerException 的原因。

那么可以做的就是在实例创建后将r.load()从构造函数移到main方法中。

public static void main(String[] args) throws ClassNotFoundException, SQLException {
    r=new ViewData();
    r.load();
}

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-08-28
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-11-28
    相关资源
    最近更新 更多