2016-11-28 9 views
0

ボタンを押すと「Player 1 End Turn」から「Player 2 End Turn」にボタンを切り替える方法を探しています。以下は、私が持っているものです。ボタンを押したときに数値を変更する - javafx

private int pTurn = 1; 
     Button turn = new Button(); 
      turn.setText("Player " + pTurn + " End Turn"); 
      turn.setOnAction(new turnButton()); 

//There is code between these two blocks, but it isn't important for 
//this question I don't think 

     class turnButton implements EventHandler<ActionEvent> { 
     @Override 
     public void handle(ActionEvent event) { 
      pTurn++; 
      if (pTurn == 3) { 
       pTurn = 1; 
      } 
      turn.setText("Player " + pTurn + " End Turn"); 
     } 

    } 

私はこれを実行すると、私は次のエラーを取得するボタン押したとき:

Executing /Users/bronsonlane/NetBeansProjects/FinalProject/dist/run1715909217/FinalProject.jar using platform /Library/Java/JavaVirtualMachines/jdk1.8.0_111.jdk/Contents/Home/jre/bin/java 
Exception in thread "JavaFX Application Thread" java.lang.NullPointerException 
at halma.Halma$turnButton.handle(Halma.java:234) 
at halma.Halma$turnButton.handle(Halma.java:227) 
at com.sun.javafx.event.CompositeEventHandler.dispatchBubblingEvent(CompositeEventHandler.java:86) 
at com.sun.javafx.event.EventHandlerManager.dispatchBubblingEvent(EventHandlerManager.java:238) 
+0

スタックトレースは、問題が234行目にあることを明確に示しています。どのコード行ですか? – VGR

+2

'turn'は' null'と思われます。どうして?コードスニペットは文脈から外れているので、わかりません。 – fabian

+0

@VGRライン234は、 "turn.setText(" Player "+ pTurn +" End Turn ");" –

答えて

-1

あなたはボタンのターンの前にpTurn変数を宣言する必要があります。 pTurnが設定されておらず、nullを返しています。

 int pTurn = 1; 

     Button turn = new Button(); 
      turn.setText("Player " + pTurn + " End Turn"); 
      turn.setOnAction(new turnButton()); 

     class turnButton implements EventHandler<ActionEvent> { 
     @Override 
     public void handle(ActionEvent event) { 
      pTurn++; 
      if (pTurn == 3) { 
       pTurn = 1; 
      } 
      turn.setText("Player " + pTurn + " End Turn"); 
     } 

    } 
+0

ああ。私はすでに実装されているが、そう言っているのを忘れてしまった。 –

+1

'int'をnullにすることはできません。さらに宣言されていない変数は決してNullPointerExceptionにならず、コードはコンパイルされません。 – Itai

関連する問題