JavaFX Ввод с кнопок - PullRequest
       25

JavaFX Ввод с кнопок

0 голосов
/ 12 марта 2019

Я создаю простой графический интерфейс банкомата с использованием javaFX, но я не могу понять, как получить ввод с кнопки. Например, я создал виртуальную цифровую клавиатуру, но я не знаю, как получать данные с нажатых кнопок.

public static void displayNumbers() {
    Stage window2 = new Stage();
    GridPane grid = new GridPane();

    window2.setTitle("Enter Value");

    Button one = new Button("1");
    Button two = new Button("2");
    Button three = new Button("3");
    Button four = new Button("4");
    Button five = new Button("5");
    Button six = new Button("6");
    Button seven = new Button("7");
    Button eight = new Button("8");
    Button nine = new Button("9");
    Button zero = new Button("0");
    Button enterButton = new Button("Enter");

    grid.add(one, 0, 0);
    grid.add(two, 1, 0);
    grid.add(three, 2, 0);
    grid.add(four, 0, 1);
    grid.add(five, 1, 1);
    grid.add(six, 2, 1);
    grid.add(seven, 0, 2);
    grid.add(eight, 1, 2);
    grid.add(nine, 2, 2);
    grid.add(zero, 1, 3);
    grid.add(enterButton, 2, 4);
}

1 Ответ

2 голосов
/ 12 марта 2019

Чтобы Button сделать что-то в JavaFX, вам нужно добавить EventHandler. Например, давайте скажем кнопке one что-то распечатать на консоль:

one.setOnAction(new EventHandler<ActionEvent>() {
    @Override
    public void handle(ActionEvent event) {
        System.out.println("You just clicked Button #1!");
    }
});

Это можно упростить с помощью лямбда-выражения в JDK8 +:

one.setOnAction(event -> System.out.println("You just clicked Button #1!"));

Если вам нужно выполнить более одной строки кода при нажатии кнопки, просто используйте вместо этого блок кода:

one.setOnAction(event -> {
    // Do lots of things
});
...