2012-01-19 2 views
1

私のプログラムがメインフレームを起動すると、RPSearchToolView.classからjComboBox2にフォーカスしようとしています。しかし、NullPointerExceptionが私のコンソールに返されました。誰かが私のコードで何が間違っているのか理解できるように助けることができますか?私は以下のようにメインの内側にrequestfocusを入れます。JComboBox.requestFocusのNullPointerExeption

/** 
* Main method launching the application. 
*/ 
public static void main(String[] args) { 
    launch(RPSearchToolApp.class, args);     
    RPSearchToolView.jComboBox2.requestFocus(true);   
} 

出力:

run: 
Exception in thread "main" java.lang.NullPointerException 
    at rpsearchtool.RPSearchToolApp.main(RPSearchToolApp.java:222) 

これに関して、私を助けてください。

+1

有用なヘルプを提供するのに十分な情報または十分なコードを提供していません。今私たちに言いたいことは、メインメソッドのrpsearchtool.RPSearchToolAppクラスの222行目で、使用しているオブジェクトの1つがnullであることです。 –

+1

@ user1157559:さらに、RPSearchToolView.jComboBox2.requestFocus(true)を使用する代わりに、RPSearchToolView.jComboBox2.requestFocusInWindow();を使用する必要があります。それははるかに良い方法です。よろしくご寄付ください –

+0

@blackpanda私は起動メソッドの直後にjComboBoxにアクセスすると、アプリケーションのすべてのコンポーネントが初期化されるまでにしばらく時間がかかるため、確実にnullpointerexceptionをスローします。とにかくお世話になりました。 – dmfrl

答えて

3

jComboBox2がnullかどうかを確認しましたか?私が強くお勧めするデバッガを使用しない場合は、 'launch'の後に文を入れ、 "(jComboBox2 == null)"をテストしてください。

コンポーネントが実現される前にフォーカスを要求すると、NULLポインタ例外が発生する可能性があります。私はそれを試していない。しかし、実現が不法になる前に焦点を要求していることは、まったく驚くことではありません。コンポーネントを表示するか、パック内のフレームにpack()を呼び出すことで実現できます。

+0

_Thanks、うまくいきます。すべてのコンポーネントが既に実現されているので、起動メソッドの後にThread.sleep(1000)を配置しようとしました.jComboBoxを呼び出すことが可能になりました。どうもありがとうございました。_ – dmfrl

関連する問題