2017-09-19 11 views
1

私は日付がjdatechooserで指定されたが、EMは継続的にエラーを取得してデータベースからデータを取得する列の日時を持つテーブルがありますここでは、コードは次のようになります。私はデータベースの日付= jdatechooserからデータを取得しようとしています:</p> <blockquote> <p>Cannot make a static reference to the non-static method getDate() from the type JDateChooser</p> </blockquote> <p>:

public void actionPerformed(ActionEvent e) { 

       Date date = JDateChooser.getDate(); 
       try{ 
       String query = " Select *from Transactions WHERE "+date+"=? "; 
       PreparedStatement pst = con.prepareStatement(query); 
       ResultSet rs = pst.executeQuery(); 
       table.setModel(DbUtils.resultSetToTableModel(rs)); 
       }catch (Exception e1){ 
        e1.printStackTrace(); 
       } 

      } 
+0

[静的でないメソッドへの静的参照を作成できません](https://stackoverflow.com/questions/4969171/cannot-make-a-static-reference-to-the-non-static-メソッド) – Oleg

+1

無関係ですが、それは 'PreparedStatement'を使う間違った方法です。クエリは 'Select * from Transactions where date_column =? 'でなければならず、' pst.setDate(date) 'を使って選択した値を渡します。 –

答えて

1

それはそれで別のJDateChooserコントロールのたくさんのウィンドウを持つことが理論的には可能です。したがって、あなたがそれらの1つを参照するときは、それを単にJDateChooserと呼ぶのではなく、どちらを指定する必要があります。つまり、あなたはそれに名前を付ける -

どこかあなたのクラスで、あなたがあなたのJDateChooserを参照する変数を宣言し

private JDateChooser theChooser; 

のような宣言に何かを持っています。あなたのactionPerformedメソッドでJDateChooserを参照するときは、の正確な名前()を使用する必要があります。例

Date date = theChooser.getDate(); 

しかしtheChooserを書いていないために - あなたは変数を宣言したときにどんな名前書くYOUJDateChooserを与えました。

+0

あなたはこのように変更しました:Date date = jDate.getDate();今は同じ行にNULLポインタの例外エラーが発生する –

関連する問題

 関連する問題