如何为孩子们安排活动



我有这样的代码:

public void handle(MouseEvent event) {
//if (event.getEventType() == MouseEvent.MOUSE_CLICKED) {
if ( ( event.getEventType() == MouseEvent.MOUSE_PRESSED )&&
(event.isPrimaryButtonDown()) ) {
x1 = x2 = event.getX();
y1 = y2 = event.getY();
line = new BoundLine(pane, event, x1, y1,  x2, y2);
pane.getChildren().add(line);                    
//line.getEventDispatcher().dispatchEvent(event, null);
}
}

是否可以立即将"MouseEvent事件"传播到javafx.scene.shape.Line(代码中的行)对象?我尝试过line.getEventDispatcher().dispatchEvent(event, null);,但收到以下消息错误:

线程"JavaFX应用程序线程"中出现异常位于的java.lang.NullPointerExceptioncom.sun.javafx.event.BasicEventDispatcher.dispatchEvent(BasicEventDispatcher.java:35)在testjavafxapplication。LinesEditCtx02$MouseHandler.handle(LinesEditCtx02.java:243)在testjavafxapplication。LinesEditCtx02$MouseHandler.handle(LinesEditCtx02.java:105)在com.sun.javafx.event.CompositeEventHandler.dispatchBubblingEvent(CompositeEventHandler.java:69)在com.sun.javafx.event.EventHandlerManager.dispatchBubblingEvent(EventHandlerManager.java:217)在com.sun.javafx.event.EventHandlerManager.dispatchBubblingEvent(EventHandlerManager.java:170)在com.sun.javafx.event.CompositeEventDispatchBubblingEvent(CompositeEventDispatcher.java:38)在com.sun.javafx.event.BasicEventDispatcher.dispatchEvent(BasicEventDispatcher.java:37)在com.sun.javafx.event.EventDispatchChainImpl.dispatchEvent(EventDispatchChain Impl.java:92)在com.sun.javafx.event.BasicEventDispatcher.dispatchEvent(BasicEventDispatcher.java:35)在com.sun.javafx.event.EventDispatchChainImpl.dispatchEvent(EventDispatchChain Impl.java:92)网址:com.sun.javafx.event.EventUtil.fireEventImpl(EventUtil.java:53)在com.sun.javafx.event.EventUtil.fireEvent(EventUtil.java:33)位于的javafx.event.event.fireEvent(event.java:171)javafx.scene.scene$MouseHandler.process(scene.java:3324)javafx.scene.scene$MouseHandler.process(scene.java:3164)javafx.scene.scene$MouseHandler.access$1900(scene.java:3119)javafx.scene.scene.impl_processMouseEvent(scene.java:1559)javafx.scene.scene$ScenePeerListener.mouseEvent(scene.java:2261)com.sun.javafx.tk.quantum.GlassViewEventHandler.handleMouseEvent(GlassViewEvent Handler.java:228)网址:com.sun.glass.ui.View.handleMouseEvent(View.java:528)com.sun.glass.ui.View.notifyMouse(View.java:922)com.sun.glass.ui.gtk.GtkApplication_runLoop(本地方法)com.sun.glass.ui.gtk.GtkApplication$3$1.run(GtkApplication.java:82)在java.lang.Thread.run(Thread.java:722)

发送到#dispatchEvent的EventDispatchChain(第二个参数)不能为null。不幸的是,没有公共实现,或者它们在com.sun包中,所以您需要实现自己的EventDispatchChain。

最新更新