javafx.scene.input.MouseEvent#getSceneX ( )源码实例Demo

下面列出了javafx.scene.input.MouseEvent#getSceneX ( ) 实例代码,或者点击链接到github查看源代码,也可以在右侧发表评论。

源代码1 项目: mzmine3   文件: Fx3DStageController.java
public void handleMouseDragged(MouseEvent me) {
  double rotateFactor = 0.12;
  mousePosX = me.getSceneX();
  mousePosY = me.getSceneY();
  if (me.isPrimaryButtonDown()) {
    rotateX.setAngle(rotateX.getAngle() + rotateFactor * (mousePosY - mouseOldY));
    rotateY.setAngle(rotateY.getAngle() - rotateFactor * (mousePosX - mouseOldX));
  }
  if (me.isSecondaryButtonDown()) {
    translateX.setX(translateX.getX() + (mousePosX - mouseOldX));
    translateY.setY(translateY.getY() + (mousePosY - mouseOldY));

  }
  mouseOldX = mousePosX;
  mouseOldY = mousePosY;
}
 
源代码2 项目: chart-fx   文件: EditDataSet.java
protected void performPointDrag(final MouseEvent event) {
    if (event.getButton() == MouseButton.PRIMARY && !controlDown && isPointDragActive) {
        if (mouseOriginX < 0) {
            mouseOriginX = event.getSceneX();
        }
        if (mouseOriginY < 0) {
            mouseOriginY = event.getSceneY();
        }
        final double deltaX = event.getSceneX() - mouseOriginX;
        final double deltaY = event.getSceneY() - mouseOriginY;

        // get the latest mouse coordinate.
        mouseOriginX = event.getSceneX();
        mouseOriginY = event.getSceneY();

        applyDrag(deltaX, deltaY);
        event.consume();
    } else {
        isPointDragActive = false;
    }
}
 
源代码3 项目: graph-editor   文件: JointCreator.java
/**
 * Updates the position of the joint creator effect based on the cursor position.
 *
 * @param event the mouse event containing information about the cursor position
 * @param root the root node of the connection
 */
private void updateHoverEffectPosition(final MouseEvent event, final Group root) {

    final double sceneX = event.getSceneX();
    final double sceneY = event.getSceneY();

    final Point2D offset = offsetCalculator.getOffset(sceneX, sceneY);

    // Do not show the joint-creator effect if the cursor is on/near a detour (too messy).
    if (offset == null) {
        hoverEffect.setVisible(false);
        return;
    } else {
        hoverEffect.setVisible(true);
    }

    final Point2D sceneCoordinatesOfParent = root.getParent().localToScene(0, 0);

    final double scaleFactor = root.getLocalToSceneTransform().getMxx();

    final double x = (sceneX - sceneCoordinatesOfParent.getX() + offset.getX()) / scaleFactor;
    final double y = (sceneY - sceneCoordinatesOfParent.getY() + offset.getY()) / scaleFactor;

    hoverEffect.setX(GeometryUtils.moveOnPixel(x - HOVER_EFFECT_SIZE / 2));
    hoverEffect.setY(GeometryUtils.moveOnPixel(y - HOVER_EFFECT_SIZE / 2));
}
 
源代码4 项目: chart-fx   文件: DataViewWindow.java
private void dragStart(final MouseEvent mevt) {
    if (!mouseFilter.test(mevt)) {
        return;
    }
    installCursor();
    xOffset = mevt.getSceneX();
    yOffset = mevt.getSceneY();
}
 
源代码5 项目: graph-editor   文件: GeometryUtils.java
/**
 * Gets the position of the cursor relative to some node.
 *
 * @param event a {@link MouseEvent} storing the cursor position
 * @param node some {@link Node}
 *
 * @return the position of the cursor relative to the node origin
 */
public static Point2D getCursorPosition(final MouseEvent event, final Node node) {

    final double sceneX = event.getSceneX();
    final double sceneY = event.getSceneY();

    final double containerSceneX = node.localToScene(0, 0).getX();
    final double containerSceneY = node.localToScene(0, 0).getY();

    return new Point2D(sceneX - containerSceneX, sceneY - containerSceneY);
}
 
源代码6 项目: JFoenix   文件: JFXDecorator.java
private void updateInitMouseValues(MouseEvent mouseEvent) {
    initStageX = primaryStage.getX();
    initStageY = primaryStage.getY();
    initWidth = primaryStage.getWidth();
    initHeight = primaryStage.getHeight();
    initX = mouseEvent.getScreenX();
    initY = mouseEvent.getScreenY();
    xOffset = mouseEvent.getSceneX();
    yOffset = mouseEvent.getSceneY();
}
 
源代码7 项目: fxgraph   文件: CellGestures.java
private static void dragWest(MouseEvent event, Wrapper<Point2D> mouseLocation, Region region, double handleRadius) {
	final double deltaX = event.getSceneX() - mouseLocation.value.getX();
	final double newX = region.getLayoutX() + deltaX;
	if(newX != 0 && newX <= region.getParent().getBoundsInLocal().getWidth() - handleRadius) {
		region.setLayoutX(newX);
		region.setPrefWidth(region.getPrefWidth() - deltaX);
	}
}
 
源代码8 项目: fxgraph   文件: ViewportGestures.java
@Override
public void handle(MouseEvent event) {

	// right mouse button => panning
	if(!event.isSecondaryButtonDown()) {
		return;
	}

	sceneDragContext.mouseAnchorX = event.getSceneX();
	sceneDragContext.mouseAnchorY = event.getSceneY();

	sceneDragContext.translateAnchorX = canvas.getTranslateX();
	sceneDragContext.translateAnchorY = canvas.getTranslateY();

}
 
源代码9 项目: exit_code_java   文件: DraggableNode.java
private void tileWindowIfOnEdge(MouseEvent event) {
    if(!tile_windows_on_edge) return; //check if setting is set to true

    int cornerSpace = 70;
    double desktopWidth = Desktop.main_root.getWidth();
    double desktopHeight = Desktop.main_root.getHeight() - Desktop.desktop_taskbar.getHeight();

    if (mousex <= 0 && mousey < cornerSpace || mousey <= 0 && mousex < cornerSpace) {
        snapOnEdge(0, 0, desktopWidth / 2, desktopHeight / 2);
    } else if (mousex <= 0 && mousey >= desktopHeight - cornerSpace || mousey >= desktopHeight && mousex <= cornerSpace) {
        snapOnEdge(0, desktopHeight / 2, desktopWidth / 2, desktopHeight / 2);
    } else if (mousex >= desktopWidth - 1 && mousey < cornerSpace || mousey <= 0 && mousex > desktopWidth - cornerSpace) {
        snapOnEdge(desktopWidth / 2, 0, desktopWidth / 2, desktopHeight / 2);
    } else if (mousex >= desktopWidth - 1 && mousey >= desktopHeight - cornerSpace || mousey >= desktopHeight && mousex > desktopWidth - cornerSpace) {
        snapOnEdge(desktopWidth / 2, desktopHeight / 2, desktopWidth / 2, desktopHeight / 2);
    } else if (mousey <= 0) {
        maximize();
    } else if (mousex <= 0) {
        snapOnEdge(0, 0, desktopWidth / 2, desktopHeight);
    } else if (mousex >= desktopWidth - 1) {
        snapOnEdge(desktopWidth / 2, 0, desktopWidth / 2, desktopHeight);
    } else if (onEdge) {
        restoreSize();
        x = event.getSceneX() - nonMaxSizeWidth / 2;
        setLayoutX(x);
        onEdge = false;
    }
}
 
源代码10 项目: FXyzLib   文件: CameraController.java
private Point2D getMouseDelta(MouseEvent event) {
    Point2D res = new Point2D(event.getSceneX() - previousX, event.getSceneY() - previousY);
    previousX = event.getSceneX();
    previousY = event.getSceneY();

    return res;
}
 
源代码11 项目: gef   文件: MouseDragSnippet.java
protected void onMouseEvent(MouseEvent event) {
	if (pressed == null) {
		// no processing if no node is pressed
		return;
	}

	// node is pressed, process all mouse events
	EventType<? extends Event> type = event.getEventType();
	if (type.equals(MouseEvent.MOUSE_RELEASED)) {
		System.out.println("release " + pressed);
		pressed.setEffect(null);
		IAnchor ifxAnchor = anchors.get(pressed);
		if (ifxAnchor != null) {
			Set<AnchorKey> keys = ifxAnchor.positionsUnmodifiableProperty()
					.keySet();
			for (AnchorKey key : keys) {
				key.getAnchored().setEffect(new BoxBlur());
			}
		}
		pressed = null;
		nodesUnderMouse.clear();
	} else if (type.equals(MouseEvent.MOUSE_DRAGGED)) {
		double dx = event.getSceneX() - startMousePosition.getX();
		double dy = event.getSceneY() - startMousePosition.getY();
		pressed.setLayoutX(startLayoutPosition.getX() + dx);
		pressed.setLayoutY(startLayoutPosition.getY() + dy);
		boolean changed = updateNodesUnderMouse(event.getSceneX(),
				event.getSceneY());
		if (changed) {
			System.out.println(
					"targets: " + Arrays.asList(nodesUnderMouse.toArray()));
		}
	}
}
 
源代码12 项目: gef   文件: CreateCurveOnDragHandler.java
protected Point getLocation(MouseEvent e) {
	// XXX: Viewer may be null if the host is removed in the same pass in
	// which the event is forwarded.
	if (getHost().getViewer() == null) {
		return new Point(e.getSceneX(), e.getSceneY());
	}
	// FIXME: Prevent invocation of interaction policies when their host
	// does not have a link to the viewer.
	Point2D location = ((InfiniteCanvasViewer) getHost().getRoot().getViewer()).getCanvas().getContentGroup()
			.sceneToLocal(e.getSceneX(), e.getSceneY());
	return new Point(location.getX(), location.getY());
}
 
源代码13 项目: jace   文件: WolfensteinCheats.java
private void processMouseEvent(MouseEvent evt) {
    if (evt.isPrimaryButtonDown() || evt.isSecondaryButtonDown()) {
        Node source = (Node) evt.getSource();
        double mouseX = evt.getSceneX() / source.getBoundsInLocal().getWidth();
        double mouseY = evt.getSceneY() / source.getBoundsInLocal().getHeight();
        int x = Math.max(0, Math.min(7, (int) ((mouseX - 0.148) * 11)));
        int y = Math.max(0, Math.min(7, (int) ((mouseY - 0.101) * 11)));
        int location = x + (y << 3);
        if (evt.getButton() == MouseButton.PRIMARY) {
            killEnemyAt(location);
        } else {
            teleportTo(location);
        }
    }
}
 
源代码14 项目: mzmine3   文件: Fx3DStageController.java
public void handleMousePressed(MouseEvent me) {
  mouseOldX = me.getSceneX();
  mouseOldY = me.getSceneY();
}
 
源代码15 项目: Path-of-Leveling   文件: ResizeHelper.java
@Override
public void handle(MouseEvent mouseEvent) {
    EventType<? extends MouseEvent> mouseEventType = mouseEvent.getEventType();
    Scene scene = stage.getScene();

    double mouseEventX = mouseEvent.getSceneX();
    double mouseEventY = mouseEvent.getSceneY();
    double sceneWidth = scene.getWidth();
    double sceneHeight = scene.getHeight();

    if (MouseEvent.MOUSE_MOVED.equals(mouseEventType)) {
        if (mouseEventX < border && mouseEventY < border) {
            cursorEvent = Cursor.NW_RESIZE;
        } else if (mouseEventX < border && mouseEventY > sceneHeight - border) {
            cursorEvent = Cursor.SW_RESIZE;
        } else if (mouseEventX > sceneWidth - border && mouseEventY < border) {
            cursorEvent = Cursor.NE_RESIZE;
        } else if (mouseEventX > sceneWidth - border && mouseEventY > sceneHeight - border) {
            cursorEvent = Cursor.SE_RESIZE;
        } else if (mouseEventX < border) {
            cursorEvent = Cursor.W_RESIZE;
        } else if (mouseEventX > sceneWidth - border) {
            cursorEvent = Cursor.E_RESIZE;
        } else if (mouseEventY < border) {
            cursorEvent = Cursor.N_RESIZE;
        } else if (mouseEventY > sceneHeight - border) {
            cursorEvent = Cursor.S_RESIZE;
        } else {
            cursorEvent = Cursor.DEFAULT;
        }
        scene.setCursor(cursorEvent);
    } else if (MouseEvent.MOUSE_EXITED.equals(mouseEventType) || MouseEvent.MOUSE_EXITED_TARGET.equals(mouseEventType)) {
        scene.setCursor(Cursor.DEFAULT);
    } else if (MouseEvent.MOUSE_PRESSED.equals(mouseEventType)) {
        startX = stage.getWidth() - mouseEventX;
        startY = stage.getHeight() - mouseEventY;
    } else if (MouseEvent.MOUSE_DRAGGED.equals(mouseEventType)) {
        if (!Cursor.DEFAULT.equals(cursorEvent)) {
            if (!Cursor.W_RESIZE.equals(cursorEvent) && !Cursor.E_RESIZE.equals(cursorEvent)) {
                double minHeight = stage.getMinHeight() > (border * 2) ? stage.getMinHeight() : (border * 2);
                double maxHeight = stage.getMaxHeight();
                if (Cursor.NW_RESIZE.equals(cursorEvent) || Cursor.N_RESIZE.equals(cursorEvent) || Cursor.NE_RESIZE.equals(cursorEvent)) {
                    double newHeight = stage.getHeight() - (mouseEvent.getScreenY() - stage.getY());
                    if (newHeight >= minHeight && newHeight <= maxHeight) {
                        stage.setHeight(newHeight);
                        stage.setY(mouseEvent.getScreenY());
                    } else {
                        newHeight = Math.min(Math.max(newHeight, minHeight), maxHeight);
                        // y1 + h1 = y2 + h2
                        // y1 = y2 + h2 - h1
                        stage.setY(stage.getY() + stage.getHeight() - newHeight);
                        stage.setHeight(newHeight);
                    }
                } else {
                    stage.setHeight(Math.min(Math.max(mouseEventY + startY, minHeight), maxHeight));
                }
            }

            if (!Cursor.N_RESIZE.equals(cursorEvent) && !Cursor.S_RESIZE.equals(cursorEvent)) {
                double minWidth = stage.getMinWidth() > (border * 2) ? stage.getMinWidth() : (border * 2);
                double maxWidth = stage.getMaxWidth();
                if (Cursor.NW_RESIZE.equals(cursorEvent) || Cursor.W_RESIZE.equals(cursorEvent) || Cursor.SW_RESIZE.equals(cursorEvent)) {
                    double newWidth = stage.getWidth() - (mouseEvent.getScreenX() - stage.getX());
                    if (newWidth >= minWidth && newWidth <= maxWidth) {
                        stage.setWidth(newWidth);
                        stage.setX(mouseEvent.getScreenX());
                    } else {
                        newWidth = Math.min(Math.max(newWidth, minWidth), maxWidth);
                        // x1 + w1 = x2 + w2
                        // x1 = x2 + w2 - w1
                        stage.setX(stage.getX() + stage.getWidth() - newWidth);
                        stage.setWidth(newWidth);
                    }
                } else {
                    stage.setWidth(Math.min(Math.max(mouseEventX + startX, minWidth), maxWidth));
                }
            }
        }
    }

    if (MouseEvent.MOUSE_PRESSED.equals(mouseEventType)) {
        startScreenX = mouseEvent.getScreenX();
        startScreenY = mouseEvent.getScreenY();
    } else if (MouseEvent.MOUSE_DRAGGED.equals(mouseEventType)) {
        if (Cursor.DEFAULT.equals(cursorEvent) && !stage.isMaximized()) {
            stage.setX(stage.getX() + mouseEvent.getScreenX() - startScreenX);
            startScreenX = mouseEvent.getScreenX();
            stage.setY(stage.getY() + mouseEvent.getScreenY() - startScreenY);
            startScreenY = mouseEvent.getScreenY();
        }
    }
}
 
源代码16 项目: CustomStage   文件: ResizeHelper.java
@Override
public void handle(MouseEvent mouseEvent) {
    EventType<? extends MouseEvent> mouseEventType = mouseEvent.getEventType();
    Scene scene = stage.getScene();

    double mouseEventX = mouseEvent.getSceneX(),
            mouseEventY = mouseEvent.getSceneY(),
            sceneWidth = scene.getWidth(),
            sceneHeight = scene.getHeight();

    if (MouseEvent.MOUSE_MOVED.equals(mouseEventType)) {
        if (mouseEventX < border && mouseEventY < border) {
            cursorEvent = Cursor.NW_RESIZE;
        } else if (mouseEventX < border && mouseEventY > sceneHeight - border) {
            cursorEvent = Cursor.SW_RESIZE;
        } else if (mouseEventX > sceneWidth - border && mouseEventY < border) {
            cursorEvent = Cursor.NE_RESIZE;
        } else if (mouseEventX > sceneWidth - border && mouseEventY > sceneHeight - border) {
            cursorEvent = Cursor.SE_RESIZE;
        } else if (mouseEventX < border) {
            cursorEvent = Cursor.W_RESIZE;
        } else if (mouseEventX > sceneWidth - border) {
            cursorEvent = Cursor.E_RESIZE;
        } else if (mouseEventY < border) {
            cursorEvent = Cursor.N_RESIZE;
        } else if (mouseEventY > sceneHeight - border) {
            cursorEvent = Cursor.S_RESIZE;
        } else {
            cursorEvent = Cursor.DEFAULT;
        }
        scene.setCursor(cursorEvent);
    } else if (MouseEvent.MOUSE_EXITED.equals(mouseEventType) || MouseEvent.MOUSE_EXITED_TARGET.equals(mouseEventType)) {
        scene.setCursor(Cursor.DEFAULT);
    } else if (MouseEvent.MOUSE_PRESSED.equals(mouseEventType)) {
        startX = stage.getWidth() - mouseEventX;
        startY = stage.getHeight() - mouseEventY;
    } else if (MouseEvent.MOUSE_DRAGGED.equals(mouseEventType)) {
        if (!Cursor.DEFAULT.equals(cursorEvent)) {
            if (!Cursor.W_RESIZE.equals(cursorEvent) && !Cursor.E_RESIZE.equals(cursorEvent)) {
                double minHeight = stage.getMinHeight() > (border * 2) ? stage.getMinHeight() : (border * 2);
                if (Cursor.NW_RESIZE.equals(cursorEvent) || Cursor.N_RESIZE.equals(cursorEvent)
                        || Cursor.NE_RESIZE.equals(cursorEvent)) {
                    if (stage.getHeight() > minHeight || mouseEventY < 0) {
                        setStageHeight(stage.getY() - mouseEvent.getScreenY() + stage.getHeight());
                        stage.setY(mouseEvent.getScreenY());
                    }
                } else {
                    if (stage.getHeight() > minHeight || mouseEventY + startY - stage.getHeight() > 0) {
                        setStageHeight(mouseEventY + startY);
                    }
                }
            }

            if (!Cursor.N_RESIZE.equals(cursorEvent) && !Cursor.S_RESIZE.equals(cursorEvent)) {
                double minWidth = stage.getMinWidth() > (border * 2) ? stage.getMinWidth() : (border * 2);
                if (Cursor.NW_RESIZE.equals(cursorEvent) || Cursor.W_RESIZE.equals(cursorEvent)
                        || Cursor.SW_RESIZE.equals(cursorEvent)) {
                    if (stage.getWidth() > minWidth || mouseEventX < 0) {
                        setStageWidth(stage.getX() - mouseEvent.getScreenX() + stage.getWidth());
                        stage.setX(mouseEvent.getScreenX());
                    }
                } else {
                    if (stage.getWidth() > minWidth || mouseEventX + startX - stage.getWidth() > 0) {
                        setStageWidth(mouseEventX + startX);
                    }
                }
            }
        }

    }
}
 
@FXML
private void addPointOnClick( MouseEvent event )
{
    if( settings.isAddPointOnClick() )
    {
        // Only add a point if mouse has not moved since clicking. This filters out the mouse event from dragging a point.
        if ( event.isStillSincePress() )
        {
            // get pixel location
            Point2D mouseSceneCoords = new Point2D( event.getSceneX(), event.getSceneY() );
            double xLocal = axisPosX.sceneToLocal( mouseSceneCoords ).getX();
            double yLocal = axisPosY.sceneToLocal( mouseSceneCoords ).getY();

            // get location in units (ft, m, in)
            double raw_x = axisPosX.getValueForDisplay( xLocal ).doubleValue();
            double raw_y = axisPosY.getValueForDisplay( yLocal ).doubleValue();

            // round location
            double rnd_x;
            double rnd_y;

            if( vars.getUnit() == Units.FEET )
            {
                rnd_x = Mathf.round( raw_x, 0.5 );
                rnd_y = Mathf.round( raw_y, 0.5 );
            }
            else if( vars.getUnit() == Units.METERS )
            {
                rnd_x = Mathf.round( raw_x, 0.25 );
                rnd_y = Mathf.round( raw_y, 0.25 );
            }
            else if( vars.getUnit() == Units.INCHES )
            {
                rnd_x = Mathf.round( raw_x, 6.0 );
                rnd_y = Mathf.round( raw_y, 6.0 );
            }
            else
            {
                rnd_x = Mathf.round( raw_x, 2 );
                rnd_y = Mathf.round( raw_y, 2 );
            }

            if( ( rnd_x >= axisPosX.getLowerBound() && rnd_x <= axisPosX.getUpperBound() )
             && ( rnd_y >= axisPosY.getLowerBound() && rnd_y <= axisPosY.getUpperBound() ) )
            {

                // Clicking to add point not working on Mac???
                if ( OSValidator.isMac() )
                {
                    Optional<Waypoint> result;
                    result = DialogFactory.createWaypointDialog( String.valueOf( rnd_x ), String.valueOf( rnd_y ) ).showAndWait();
                    result.ifPresent( ( Waypoint w ) -> backend.addPoint( w ) );
                }
                else
                {
                    backend.addPoint( rnd_x, rnd_y, 0.0 );
                }
            }
        }
        else
        {
            event.consume();
        }
    }
    else
    {
        event.consume();
    }

}
 
源代码18 项目: FXyzLib   文件: CameraController.java
private void handleMousePress(MouseEvent event) {
    previousX = event.getSceneX();
    previousY = event.getSceneY();
    event.consume();
}
 
源代码19 项目: gef   文件: BendOnSegmentDragHandler.java
@Override
public void startDrag(MouseEvent e) {
	isInvalid = !isBend(e);
	if (isInvalid) {
		return;
	}

	// save initial mouse position in scene coordinates
	initialMouseInScene = new Point(e.getSceneX(), e.getSceneY());

	// disable refresh visuals for the host
	storeAndDisableRefreshVisuals(getHost());

	bendPolicy = determineBendPolicy();
	init(bendPolicy);
	updateHandles();

	prepareBend(bendPolicy);
	// move initially so that the initial positions for the selected
	// points are computed
	bendPolicy.move(initialMouseInScene, initialMouseInScene);

	// query selected position
	List<Point> initialPositions = bendPolicy.getSelectedInitialPositions();
	Point startPositionInConnectionLocal = initialPositions.get(0);
	Point startPositionInScene = FX2Geometry.toPoint(getHost().getVisual()
			.localToScene(startPositionInConnectionLocal.x,
					startPositionInConnectionLocal.y));

	snapToSupport = getHost() instanceof IContentPart
			? getHost().getViewer().getAdapter(SnapToSupport.class) : null;
	if (snapToSupport != null) {
		// Only report HSL or VSL depending on segment orientation
		SnappingLocation sl = bendPolicy.isSelectionHorizontal()
				? new SnappingLocation(
						(IContentPart<? extends Connection>) getHost(),
						Orientation.VERTICAL, startPositionInScene.y)
				: new SnappingLocation(
						(IContentPart<? extends Connection>) getHost(),
						Orientation.HORIZONTAL, startPositionInScene.x);
		snapToSupport.startSnapping(
				(IContentPart<? extends Connection>) getHost(),
				Arrays.asList(sl));
	}
}
 
源代码20 项目: gef   文件: RotateSelectedOnHandleDragHandler.java
/**
 * Computes the clock-wise rotation angle based on the initial mouse
 * position and the actual mouse position.
 *
 * @param e
 *            The latest {@link MouseEvent}.
 * @param part
 *            The {@link IVisualPart} that is rotated.
 * @return The clock-wise rotation angle.
 */
protected Angle computeRotationAngleCW(MouseEvent e,
		IVisualPart<? extends Node> part) {
	Vector vStart = new Vector(pivotInScene, initialPointerLocationInScene);
	Vector vEnd = new Vector(pivotInScene,
			new Point(e.getSceneX(), e.getSceneY()));
	Angle angle = vStart.getAngleCW(vEnd);
	return angle;
}