【发布时间】:2020-10-29 09:29:34
【问题描述】:
如果我像这样在 SuperClass 中实现 onMouseClicked-EventHandler:
public class SuperClass {
public SuperClass() {
setOnMouseClicked(new EventHandler<Event>() {
@Override
public void handle(Event event) {
System.out.println("Super reacted");
}
});
}
我在 SuperClass 的子类中实现了一个 onMouseClicked-EventHandler,如下所示:
public class SubClass extends SuperClass{
public SubClass() {
setOnMouseClicked(new EventHandler<Event>() {
@Override
public void handle(Event event) {
System.out.println("Sub reacted");
});
}
}
单击 SubClass 的实例后,控制台中的结果将是“Sub reacted”。所以 SuperClass 不会注意到这个事件。
我怎样才能以某种方式转发事件,让所有超类也做出反应?我想过在子类中手动触发一个事件,但它不起作用。
感谢您的帮助。
【问题讨论】:
-
为什么要在 class 层次结构的不同级别上使用不同的处理程序?你真正想要实现什么(感觉像是一个 xy 问题)?
标签: javafx subclass superclass eventhandler