1

我正在开发一个绘图应用程序。简而言之,这个应用程序由一个处理绘图(通过 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 );

我想应该有更好的方法...

4

0 回答 0