2011-02-02 2 views
0

私は最終的に正しくコンパイルするコードを手に入れました。しかし、おそらくあります。私はのMouseListener、すべてを追加するlistboxを設定するが、私は巨大なエラーが表示されます。AWT-EventQueue-1 on JList

私はコードに、主に、これを追加しました:listbox.addMouseListener(new MousePopupListener());

と私はそれを実行すると、それが動作します。しかし、私はJList上で右クリックしたとき、私はこれを取得:

Row: 0 
Exception in thread "AWT-EventQueue-1" java.lang.NullPointerException 
    at inv$MousePopupListener.checkPopup(inv.java:91) 
    at inv$MousePopupListener.mouseReleased(inv.java:84) 
    at java.awt.AWTEventMulticaster.mouseReleased(AWTEventMulticaster.java:273) 
    at java.awt.Component.processMouseEvent(Component.java:6267) 
    at javax.swing.JComponent.processMouseEvent(JComponent.java:3267) 
    at java.awt.Component.processEvent(Component.java:6032) 
    at java.awt.Container.processEvent(Container.java:2041) 
    at java.awt.Component.dispatchEventImpl(Component.java:4630) 
    at java.awt.Container.dispatchEventImpl(Container.java:2099) 
    at java.awt.Component.dispatchEvent(Component.java:4460) 
    at java.awt.LightweightDispatcher.retargetMouseEvent(Container.java:4577) 
    at java.awt.LightweightDispatcher.processMouseEvent(Container.java:4238) 

    at java.awt.LightweightDispatcher.dispatchEvent(Container.java:4168) 
    at java.awt.Container.dispatchEventImpl(Container.java:2085) 
    at java.awt.Component.dispatchEvent(Component.java:4460) 
    at java.awt.EventQueue.dispatchEvent(EventQueue.java:599) 
    at java.awt.EventDispatchThread.pumpOneEventForFilters(EventDispatchThread.java:269) 
    at java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:184) 
    at java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:174) 
    at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:169) 

    at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:161) 

    at java.awt.EventDispatchThread.run(EventDispatchThread.java:122) 

ここに私のコードだ:

}

答えて

3

問題は、その後、クラス変数としてポップアップを宣言していることですinitメソッドでポップアップのローカルインスタンスを作成します。その結果、クラスレベルのポップアップは何も設定されず、checkPopupで使用しようとするとNPEが発生します。ライン変更:

popup = new JPopupMenu(); 

JPopupMenu popup = new JPopupMenu(); 

すると、この問題を修正する必要があります。

+0

ありがとうございます!出来た!今私はこのエラーを取得しますが、実際には警告のようなエラーではありません*:http://imgur.com/27wI5 – nn2