Я пытаюсь управлять основным настраиваемым событием в 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();
}
но это не работает.Любая помощь, чтобы понять?