2016-03-23 4 views
0

テーブルが新しいデータで更新されると、prepareRendererが呼び出されます。これは、デフォルトで、JTableが更新されたときの動作です。しかし、私のプログラムがprepareRendererメソッドを呼び出すと、その引数にnull TableCellRendererが与えられます。したがって、私はNULLポインタ例外を取得します。なぜTableCellRendererがnullですか?

dataTable = new javax.swing.JTable() { 
     @Override 
     public Component prepareRenderer(TableCellRenderer renderer, int row, int column) { 
      return super.prepareRenderer(renderer, row, column); 
     } 
    }; 

これは私がそれを宣言する方法です。 @Overrideは本当に必要なものではありません。私はそれを置くので、ブレークポイントを置くことができるので、実際には発砲していて、引数の値が何であったのか分かりました。何らかの理由で、javaがこのprepareRenderメソッドを呼び出すと、TableCellRenderer引数にnull値が返されます。なぜそれをやっているのですか?どうすれば修正できますか? NPEのために画面上に何も表示されません。

+0

男の子同じトピックについて質問があるときに、別の質問を投稿したのは面倒です。http://stackoverflow.com/questions/36180429/exception-in-thread-awt-eventqueue-0-java-lang -nullpointerexception-jtabを使用します。あなたは適切な「SSCCE」を投稿するように求められました。そうしないと、すべての時間を無駄にするだけです! – camickr

答えて

0

問題は私のテーブルモデルにありました。具体的には、getColumnClassメソッドは返り値をコーディングしていたため、何も返されませんでした(nullのみ)。 getColumnClassメソッドが機能しない場合、データの表示方法がわからないため、tablecellrenderは失敗します。

+0

質問をするときに適切な「SSCCE」を投稿してください。問題の曖昧な記述と2行のコードに基づいて、あなたの問題が何かを推測できる方法はまったくありません。あなたは人々の時間を無駄にし続けます。 – camickr

関連する問題