2016-11-28 3 views
0

Я ищу способ изменить кнопку «Говорить« 1 конец хода »на« 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 line 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' не может быть нулевым. Более того - переменная, которая не объявляется, никогда не приведет к «NullPointerException», код просто не будет компилироваться. – Itai

Смежные вопросы