按下按钮后在TextField上显示文本(JavaFX)

时间:2017-07-13 01:12:33

标签: button javafx calculator

我正在尝试构建一个计算器,而且我已经浏览了整个互联网并且这些示例对我没有帮助,所以我创建了按钮以及所有内容,我试图显示:

    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()添加(UNO);

如何使文本字段结果显示编号1?

非常感谢!

1 个答案:

答案 0 :(得分:1)

最简单的方法是为每个按钮添加一个监听器并动态更改TextField:

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