按下时更改按钮上的数值-javafx

按下时更改按钮上的数值-javafx,java,button,text,javafx,actionevent,Java,Button,Text,Javafx,Actionevent,我正在寻找一种方法,使按钮从说“玩家1结束回合”更改为“玩家2结束回合”时按下。以下是我所拥有的: private int pTurn = 1; Button turn = new Button(); turn.setText("Player " + pTurn + " End Turn"); turn.setOnAction(new turnButton()); //There is code between these two

我正在寻找一种方法,使按钮从说“玩家1结束回合”更改为“玩家2结束回合”时按下。以下是我所拥有的:

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");
        }

    }

您需要在打开按钮之前声明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");
        }

    }
intpturn=1;
按钮转动=新按钮();
回合.setText(“玩家”+pTurn+“结束回合”);
turn.setOnAction(新的turnButton());
类turnButton实现EventHandler{
@凌驾
公共无效句柄(ActionEvent事件){
pTurn++;
如果(pTurn==3){
pTurn=1;
}
回合.setText(“玩家”+pTurn+“结束回合”);
}
}

啊,哎呀。我已经实现了,但忘了这么说。
int
不能为空。更重要的是-未声明的变量永远不会导致
NullPointerException
,代码将无法编译。堆栈跟踪清楚地告诉您问题出在第234行。那是哪一行代码?
turn
似乎是
null
。为什么?无法判断,因为代码段与上下文无关。@VGR第234行是“turn.setText”(“Player”+pTurn+“End turn”);“@fabian我不确定pTurn为什么为空。我在类中将它声明为变量并设置为1,然后让此方法更改它。
pTurn
是基本的,因此不能为
null
。该处理程序中唯一未引用的变量是
turn
,而不是
pTurn
        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");
        }

    }