我正在做一个绘图应用程序。简而言之,这个应用程序由一个背景节点(一个白色矩形)组成,该节点处理绘图(通过mousepressed、mousedragged和mouserereleased事件)。以这种方式绘制的节点位于背景节点的顶部。
现在,每个绘制的节点都有一个上下文菜单。我想让绘制的节点只在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 );
我想应该有更好的方法。。。
暂无答案!
目前还没有任何答案,快来回答吧!