2012-05-09 4 views
0

이동하게하지, 나는이 코드를 사용 :보드가 조각 나는 다른 곳으로 버튼 이동을 만들기 위해 노력하고

public void actionPerformed(ActionEvent e) 
{ 
    for(int i = 0; i<=29; i++) 
    { 
     if(e.getSource() == gB[i]) 
     { 
      System.out.println(i); 
     } 
    } 
} 

을이 보드 내가 잘못 생각

public void drawBoard() 
{ 
    JPanel gboard = new JPanel(); 

    for(int i = 0; i < 30; i++) 
    { 
     gboard.add(gB[i]); 
     gB[i].setText(Integer.toString(gB[i].getPieceValue())); 

    } 

을 그릴 수 있습니다. 누구든지 어떤 생각을 가지고 있습니까? 나는 선수들을 다음 순위로 이끌어 갈 수 없다.

감사

오류는 다음과 같습니다 (모든 RED에서)

Exception in thread "AWT-EventQueue-0" java.lang.NullPointerException 
at Controller.actionPerformed(Controller.java:22) 
at javax.swing.AbstractButton.fireActionPerformed(AbstractButton.java:2018) 
at javax.swing.AbstractButton$Handler.actionPerformed(AbstractButton.java:2341) 
at javax.swing.DefaultButtonModel.fireActionPerformed(DefaultButtonModel.java:402) 
at javax.swing.DefaultButtonModel.setPressed(DefaultButtonModel.java:259) 
+1

gB는 어디에도 정의되어 있지 않습니다. –

+2

당신의 메소드'actionPerformed'는 System.out에 쓰는 것과 별개로 아무것도하지 않습니다. 그게 의도적 인거야? –

+0

더 나은 도움을 받으려면 [sscce] (http://www.sscce.org) – user1329572

답변

2
public void actionPerformed(ActionEvent e) 
{ 
    for(int i = 0; i<=29; i++) 
    { 
     if(e.getSource() == gB[i]) 
     { 
      System.out.println(i); 
     } 
    } 
} 

는 값을 잡을 수 단지 몇 이름을 가지고있다. "e"라는 이름의 ActionEvent과 "gB"라는 이름의 배열 만 null로 설정할 수 있습니다.

즉, 소스를 정의하지 않고 사용자 정의 ActionEvent를 던 졌거나 gB 어레이를 초기화하지 않았습니다.

조각을 움직이고 싶다면 액션 핸들러에서 "i"의 값을 프린트 아웃하는 것 이상의 도움이 될 것입니다. 그러나 나는 당신이 아직까지 그렇게 노력하지 않았다고 생각합니다.

+0

흠, 문제는 코드가 있지만 기존 코드에 구현할 수 없습니다. 왜냐하면 오류가 발생하기 시작했기 때문입니다. –

관련 문제