我正在开发一个绘图应用程序。简而言之,这个应用程序由一个处理绘图(通过 mousepressed、mousedragged、mousereleased 事件)的背景节点(一个白色矩形)组成。以这种方式绘制的节点位于背景节点之上。
现在,每个绘制的节点都有一个上下文菜单。我想让绘制的节点仅在它是 MouseButton.SECONDARY 类型的 mousepressed 事件时才使用鼠标事件...否则,该事件应传播到后台节点。
目前,我可以打开绘制的节点上下文菜单,但我不能在这个绘制的节点上绘制另一个节点,因为事件没有传播到后台节点......
我该怎么办?
//编辑
目前我正在使用一种解决方法:
EventHandler< MouseEvent > handler = new EventHandler< MouseEvent > ( ) {
@Override
public void handle ( MouseEvent event ) {
if ( event.getEventType ( ) == MouseEvent.MOUSE_PRESSED
&& event.getButton ( ) == MouseButton.SECONDARY ) {
showContextMenu ( event.getScreenX ( ), event.getScreenY ( ) );
} else {
Background.getInstance ( ).fireEvent ( event );
}
}
};
setOnMousePressed ( handler );
setOnMouseDragged ( handler );
setOnMouseReleased ( handler );
我想应该有更好的方法...