2017-02-01 3 views
-3

startGame 버튼을 클릭하기 전까지는 예외가 발생하지 않습니다. Exception in thread "JavaFX Application Thread" java.lang.NullPointerException at helloworld.HelloWorld$3.handle(HelloWorld.java:123) 오류가 무엇을 의미하는지 모르겠다. 줄에 오류가 발생했습니다 players.add(new Player(0, "Amrit")); 내가 뭘 잘못하고 있니? 여기 Java에서 nullPointerException이 발생하는 이유는 무엇입니까?

public String gameStatus = "Pending"; 
public ArrayList<Player> players; 

    startGame.addEventHandler(MouseEvent.MOUSE_CLICKED, 
     new EventHandler<MouseEvent>() { 
      @Override public void handle(MouseEvent e) { 

       gameStatus = "Started"; 
       players.add(new Player(0, "Amrit")); 
       players.add(new Player(1, "Tyler")); 
       players.add(new Player(2, "Scott")); 
       players.add(new Player(3, "Ryker")); 

       while(gameStatus == "Started"){ 

        //Select first two settlements with one road extending from each 
        for(int s = 0; s < 1; s++){ 

         for(int p = 0; p < players.size(); p++){ 

          Alert alert = new Alert(Alert.AlertType.CONFIRMATION); 
          alert.setTitle(players.get(p).name); 
          alert.setContentText(players.get(p).name + ", please select your first settlement and place a road next to it."); 

         } 
        } 

        gameStatus = "Ended"; 
       } 

      } 
    }); 

} 

는 Player.java입니다 : 당신이 null의 사용하려고하면

package helloworld; 

import java.awt.Point; 
import java.util.ArrayList; 

public class Player { 

    public int ID; 
    public String name; 
    public ArrayList<String> hand = new ArrayList<String>(); 
    public int points; 
    public Point[] citiesBuilt; 
    public Point[] settlementsBuilt; 
    public int citiesAvail; 
    public int settlementsAvail; 
    public Point[] roadsBuilt; 
    public int roadsAvail; 

    Player(int id, String playerName){ 

     ID = id; 
     name = playerName; 

    } 
} 
+3

'players'가 null입니다. 존재하지 않는 목록에는 요소를 추가 할 수 없습니다. – Manu

답변

0

players가 초기화되지 않습니다. 그 코드를 다음에서 변경하십시오 :

public ArrayList<Player> players = new ArrayList<>(); 
관련 문제