JavaFX пользовательское событие запуска / обработки не работает - PullRequest
0 голосов
/ 01 марта 2019

Я пытаюсь управлять основным настраиваемым событием в JavaFX 8 / debian 9 / eclipse 4.10 / java 8:

public class CustomEvent extends Event{

    private static final long serialVersionUID = 1L;
    private String message;

    public CustomEvent(EventType<CustomEvent> eventType) {
        super(eventType);

    }

    public String getMessage() {
        return message;
    }

    public void setMessage(String message) {
        this.message = message;
    }

}

В сцене при нажатии кнопки событие запускается и должнобыть обработанным слушателем лейбла?не так ли?

@Override
public void start(Stage stage) {

    stage.setWidth(800);
    stage.setHeight(600);

    VBox root = new VBox();
    root.setPadding(new Insets(20));
    root.setSpacing(20);
    stage.setScene(new Scene(root));
    stage.setTitle("Events testing");


    final EventType<CustomEvent> eventType = new EventType<>("ALL");

    // Event handler
    Label l = new Label();
    l.addEventHandler(eventType, e -> System.out.println(e.getMessage() == null ? "NULL":e.getMessage()));      


    // event source
    Button b = new Button("Event");
    b.setOnAction(e -> {

        l.setText(l.getText() + "\n" + "button clicked");

        CustomEvent event = new CustomEvent(eventType);
        event.setMessage("HELLO");
        b.fireEvent(event); 
    });

    root.getChildren().addAll(b, l);

    stage.show();
}

но это не работает.Любая помощь, чтобы понять?

...