Button 按下按钮后在文本字段上显示文本(JavaFX)

Button 按下按钮后在文本字段上显示文本(JavaFX),button,javafx,calculator,Button,Javafx,Calculator,我正在尝试构建一个计算器,我已经在互联网上搜索了所有的例子,但这些例子对我没有帮助,所以我创建了按钮和所有东西,我正在尝试在上面显示: TextField Result = new TextField(); Result.setEditable(false); Result.setAlignment(Pos.CENTER_RIGHT); Result.setMinSize(210, 30); Result.textProperty().bind(Bindi

我正在尝试构建一个计算器,我已经在互联网上搜索了所有的例子,但这些例子对我没有帮助,所以我创建了按钮和所有东西,我正在尝试在上面显示:

    TextField Result = new TextField();
    Result.setEditable(false);
    Result.setAlignment(Pos.CENTER_RIGHT);
    Result.setMinSize(210, 30);
    Result.textProperty().bind(Bindings.format("%.0f" , value));    
    pane.getChildren().add(Result);
按钮按下的次数,我该怎么做?假设按钮是:

Button uno = new Button("1");
uno.setMinSize(40,40); pane.getChildren().add(uno)

如何使文本字段结果显示数字1


非常感谢

最简单的方法是为每个按钮添加一个侦听器,并动态更改文本字段:

uno.pressedProperty().addListener((o, old, newValue) -> Result.setText("1"));
dos.pressedProperty().addListener((o, old, newValue) -> Result.setText("2"));
请注意,当用户按下并取消按下按钮时,您的侦听器将对newValue=true/false做出两次反应。如果需要,执行附加检查:

uno.pressedProperty().addListener((o, old, newValue) -> {
    if (newValue) {
        Result.setText("1")
    }
});
更新: 不要忘记将此行作为错误的解决方案删除:

Result.textProperty().bind(Bindings.format("%.0f" , value));

这是我第一次发现JavaFx时在采访中做的一个糟糕的实现。谢谢你的帮助!但是当我放入:uno.pressedProperty().addListener((o,old,newValue)->{if(newValue){Result.setText(“1”)});在代码上,它什么都没做,它给了我一个错误。谢谢你,兄弟!我正认真地努力让这一切顺利进行,我给自己定了一个最后期限,我被困在这里了。这就是我的错误:我重现了你的问题。您需要删除此行:Result.textProperty().bind(Bindings.format(“%.0f”,value));。我很高兴,别忘了投票,把答案记为赢家:)哦!我不知道你能在这里这么做,当然我很乐意这么做。再次感谢!