0

メソッド fillDBWeek(String mName) を呼び出すと、NullPointerException が発生します。どこが間違っているのかわかりません。誰か助けてください。

これは、次のメソッドで発生するエラーです

*Exception in thread "AWT-EventQueue-0" java.lang.NullPointerException
    at View.LectureReport.fillDBWeek(LectureReport.java:49)
    at View.LectureReport$2.actionPerformed(LectureReport.java:96)*

メソッドfillDBWeek

public void fillDBWeek(String mName)
    {
         tableModel.setDataVector(lRHand.popuSDataWeek(mName), columnNames);
         table.setModel(tableModel);
         table.repaint(); 
    }

ボタンを押したときにメソッドが呼び出される場所

JButton btnViewReport = new JButton("View Report");
    btnViewReport.addActionListener(new ActionListener() {
        public void actionPerformed(ActionEvent arg0) {
            String moduleName = (String)comboBox.getSelectedItem();
            if(comboBox_1.getSelectedItem().equals("Week"))
            {
                fillDBWeek(moduleName);
            }
            else if (comboBox_1.getSelectedItem().equals("Semester"))
            {
                fillDBSem(moduleName);
            }
            else if (comboBox_1.getSelectedItem().equals("Year"))
            {
                fillDBYear(moduleName);
            }
        }
    });

SQL データベースからデータを呼び出すために使用するクエリ

public Object[][] popuSDataWeek(String moduleName)
{
    data = new Object[30][9];

    try{
           Class.forName(DRIVER_CLASS);

            connection = DriverManager.getConnection( url,"polk", "mire");

            statement = connection.createStatement();
            results = statement.executeQuery("SELECT * FROM Group6_StudAttWeek WHERE module = '"+ moduleName +"'");
            int i=0;
            while(results.next())
            {
            data[i][0]= results.getString("firstname");
            data[i][1]= results.getString("lastname");
            data[i][2]= results.getString("module");
            data[i][3] = results.getString("yearOfStudy");
            data[i][4]= results.getInt("workshop%");
            data[i][5]= results.getInt("tutorial%");
            data[i][6] = results.getInt("lecture%");
            data[i][7] = results.getInt("avg%");
            data[i][8] = results.getInt("number");
            i++;
            }
       results.close();
       statement.close();
       connection.close();
       } catch (SQLException sqlException) {
       sqlException.printStackTrace();
       System.exit(1);
       }catch(Exception exception) {
       System.err.println("An error happened");
       System.exit(1);
       }

    return data;
}
4

1 に答える 1

1

スタックに基づく:

Exception in thread "AWT-EventQueue-0" java.lang.NullPointerException
    at View.LectureReport.fillDBWeek(LectureReport.java:49)
    at View.LectureReport$2.actionPerformed(LectureReport.java:96)

またはが nullfillDBWeekであるため、 で例外が発生します。例外が によってスローされた場合、代わりにスタックトレースに存在する必要がありますが、とにかく私が見る唯一の可能性のある null オブジェクトは.tableModeltablepopuSDataWeekconnection

それらを使用する前に、適切なオブジェクトが宣言および初期化されていることを確認してください。

于 2012-12-04T16:23:39.610 に答える