Обработка событий javafx

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


person Marvin Nyalik    schedule 06.10.2017    source источник
comment
Попробуйте это здесь: stackoverflow. ком/вопросы/30446996/. Если это не поможет, я бы посоветовал прочитать пару руководств от oracle об обработке событий в javafx.   -  person Alexander Heim    schedule 06.10.2017
comment
Когда вы публикуете вопрос, попробуйте включить в него то, что вы уже сделали по этой теме. SO - это не место, где вы получите полное решение!   -  person AKHIL MATHEW    schedule 06.10.2017


Ответы (2)


Чтобы реагировать на нажатие кнопки, вам нужно прикрепить прослушиватель событий к объекту кнопки.

button.setOnAction(new EventHandler() {
    @Override
    public void handle(ActionEvent actionEvent) {
        //... do something in here.
    }
});

Чтобы узнать больше, посетите эти ссылки, я надеюсь, вы найдете свое решение http://tutorials.jenkov.com/javafx/button.html#button-events и этот http://tutorials.jenkov.com/java/lambda-expressions.html

person Raheel    schedule 06.10.2017

Поскольку вы только начинаете свое приключение с javafx, вы, скорее всего, наткнетесь на то, что Рахил написала в другой форме, а именно, в виде лямбда-выражения. Тогда тот же фрагмент кода будет выглядеть так:

button.setOnAction((event) -> {
//... do sth here
});
person gourmej    schedule 06.10.2017
comment
Разве это не должно переопределить существующий метод? Я не вижу переопределения метода public void handle()!! Может поподробнее.. - person Marvin Nyalik; 06.10.2017
comment
Raheel использует интерфейс EventHandler, который имеет один метод docs.oracle. com/javase/8/javafx/api/javafx/event/ Чтобы использовать его, он должен переопределить его. Нет ограничений на то, какой метод будет использоваться в качестве обработчика. Вы также можете создать свой собственный метод eventHandlerMethod и использовать его следующим образом: button.SetOnAction(this::eventHandlerMethod) - person gourmej; 06.10.2017