2011-02-02 1 views
0

마지막으로 올바르게 컴파일 할 코드가 있습니다. 그러나 아마 있습니다. 나는 MouseListener를 모두 추가 할 listbox을 설정하지만 엄청난 오류가 발생합니다 : JList의 AWT-EventQueue-1

내가 주로 코드에이 추가 : 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가 발생합니다. 라인 변경 :

JPopupMenu popup = new JPopupMenu(); 

popup = new JPopupMenu(); 

에하면 문제가 해결됩니다.

+0

감사합니다. 그것은 효과가있다! 이제는이 오류가 표시됩니다. * 경고 기호 *와 같은 오류가 아닙니다. http://imgur.com/27wI5 – nn2