2012-10-03 2 views
0

나는 나의 CRUD 프로그램에 대한 GUI를 코딩 한, 나는 그것을 실행할 때 얻을 :하는 이유는, NullPointerException가받을 수 있나요?

Exception in thread "AWT-EventQueue-0" java.lang.NullPointerException 
    at gui.guimain$1.run(guimain.java:477) 
    at java.awt.event.InvocationEvent.dispatch(InvocationEvent.java:209) 
    at java.awt.EventQueue.dispatchEvent(EventQueue.java:597) 
    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) 

NPE가 나오는 코드 그게 전부 :

public static void main(String[] args){ 
    javax.swing.SwingUtilities.invokeLater(new Runnable() { 
     public void run(){ 
       maingui.showStart();// thats the line with the Exception 
     } 
    }); 
} 

과 방법 showStart 이잖아() :

public void showStart(){ 
    mainFrame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); 
    mainFrame.getContentPane().removeAll(); 
    tabstructure.removeAll(); 
    Produkt filter=new Produkt(); 

    JPanel P=new JPanel(); 
    P=Produktgui(0, filter); 
    JPanel R=new JPanel(); 
    R=Billgui(0); 
    JPanel nR=new JPanel(); 
    nR=Billgui(0); 

    tabstructure.addTab("e", P); 
    tabstructure.addTab("Bills", R); 
    tabstructure.addTab("Pay bill", nR); 
    mainFrame.getContentPane().add(tabstructure); 
    mainFrame.validate(); 
    mainFrame.repaint(); 
    mainFrame.pack(); 
    mainFrame.setVisible(true); 
} 

NullPointerException가 표시됩니까?

+3

'maingui'가'null '인 것 같습니다. 어딘가에 초기화합니까? – Baz

+2

당신의 질문에 대답하지,하지만 당신은 JPanel의 P = 새로운 JPanel의()'의 패턴을 가지고; P = Produktgui (0, 필터); '. 이 경우 JPanel() 생성자를 호출 할 이유가 있습니까? 그것은 가치없는/불필요한 것으로 보입니다. – mah

답변

5

당신의 메소드를 호출하고 뭔가 null이기 때문입니다.

오류 메시지가주의 깊게 봐. 그 예외는 라인 477의 guimain.java에서 발생한다고합니다. 그 시점에서

, mainguinull입니다.

6

당신은 당신의 MainGui의 인스턴스를 생성해야합니다.

public static void main(String[] args) { 
    final MainGui maingui = new MainGui(); 
    javax.swing.SwingUtilities.invokeLater(new Runnable() { 
     public void run(){ 
       maingui.showStart();// thats the line with the Exception 
     } 
    }); 
} 
5

개체를 메서드를 호출하기 전에 인스턴스화해야합니다. 이 경우 maingui이 인스턴스화되지 않았습니다.

public static void main(String[] args) { 
    javax.swing.SwingUtilities.invokeLater(new Runnable() { 
     public void run() { 
      MainGUI maingui = new MainGUI(); 
      maingui.showStart(); 
     } 
    }); 
}