получить параметр объекта из нажатой кнопки - PullRequest
0 голосов
/ 24 января 2020

я создаю меню с кнопкой, чтобы выбрать одну из категорий:

String text;
public void start(Stage primaryStage) throws Exception {

Button button1 = new Button("Hi");
button1.setOnAction(event -> text = button1.getText());
Button button2 = new Button("Bye");
button2.setOnAction(event -> text = button2.getText());

теперь я создаю объект и отправляю переменную "текст" в качестве ввода

Board board = new Board(30, text);
board.create;
'do something'

в этом коде «текст» равен нулю при создании платы и создании ошибки. Как я могу исправить это, чтобы поместить переменную в качестве ввода объекта правильно ??

1 Ответ

0 голосов
/ 24 января 2020

Я думаю, это то, что вы ищете:

Button button1 = new Button("Hi");
    grid.add(button1, 0, 0);
    button1.setOnAction(new EventHandler<ActionEvent>() {
        @Override
        public void handle(ActionEvent e) {
            text = button1.getText();
            System.out.println(text);
        }
    });

Однако попробуйте запустить это, чтобы понять, как javafx работает немного лучше ...

@Override
public void start(Stage primaryStage) throws Exception{
    primaryStage.setTitle("Hello World");
    primaryStage.show();
    GridPane grid = new GridPane();
    grid.setAlignment(Pos.CENTER);
    grid.setHgap(10);
    grid.setVgap(10);
    grid.setPadding(new Insets(25, 25, 25, 25));

    Scene scene = new Scene(grid, 400, 275);
    primaryStage.setScene(scene);

    Label label = new Label("Test Label:");
    grid.add(label, 0, 0);

    TextField userTextField = new TextField();
    grid.add(userTextField, 0, 1);

    Button btn = new Button("Update Label");
    grid.add(btn, 1, 1);

    btn.setOnAction(new EventHandler<ActionEvent>() {

        @Override
        public void handle(ActionEvent e) {
            System.out.println("button pressed, textField value: " + userTextField.getText());
            label.setText(userTextField.getText());
        }
    });

}


public static void main(String[] args) {
    launch(args);
}

Я думаю, вы найдете эта ссылка из oracle документов весьма полезна для начала.

...