类javafx.scene.input.MouseButton源码实例Demo

下面列出了怎么用javafx.scene.input.MouseButton的API类实例代码及写法,或者点击链接到github查看源代码。

源代码1 项目: pmd-designer   文件: ASTTreeCell.java
@Override
public void commonUpdate(Node item) {
    setContextMenu(buildContextMenu(item));

    DragAndDropUtil.registerAsNodeDragSource(this, item, root);

    // Reclicking the selected node in the ast will scroll back to the node in the editor
    this.addEventHandler(MouseEvent.MOUSE_CLICKED, t -> {
        TreeItem<Node> selectedItem = getTreeView().getSelectionModel().getSelectedItem();
        if (t.getButton() == MouseButton.PRIMARY
            && selectedItem != null && selectedItem.getValue() == item) {
            onNodeItemSelected.accept(item);
            t.consume();
        }
    });
}
 
源代码2 项目: graph-editor   文件: ConnectorDragManager.java
/**
 * Handles drag-entered events on the given connector.
 *
 * @param event a drag-entered event
 * @param connector the {@link GConnector} on which this event occured
 */
private void handleDragEntered(final MouseEvent event, final GConnector connector) {

    if (!event.getButton().equals(MouseButton.PRIMARY)) {
        return;
    }

    if (event.getButton().equals(MouseButton.PRIMARY) && validator.prevalidate(sourceConnector, connector)) {

        final boolean valid = validator.validate(sourceConnector, connector);
        tailManager.snapPosition(sourceConnector, connector, valid);

        repositionAllowed = false;

        if (valid) {
            skinLookup.lookupConnector(connector).applyStyle(GConnectorStyle.DRAG_OVER_ALLOWED);
        } else {
            skinLookup.lookupConnector(connector).applyStyle(GConnectorStyle.DRAG_OVER_FORBIDDEN);
        }
    }

    event.consume();
}
 
源代码3 项目: milkman   文件: RequestCollectionComponent.java
private Node createRequestEntry(Collection collection, RequestContainer request) {
		Label requestType = new Label(request.getType());
		requestType.getStyleClass().add("request-type");
		Label button = new Label(request.getName());

		VBox vBox = new VBox(new HBox(requestType,button));
		vBox.getStyleClass().add("request-entry");
		vBox.setOnMouseClicked(e -> {
//			if (e.getButton() == MouseButton.PRIMARY)
//				onCommand.invoke(new UiCommand.LoadRequest(request.getId()));
//			else
			if (e.getButton() == MouseButton.PRIMARY) {
				onCommand.invoke(new UiCommand.LoadRequest(request.getId()));
				e.consume();
			}
			if (e.getButton() == MouseButton.SECONDARY) {
				reqCtxMenu.show(request, collection, vBox, e.getScreenX(), e.getScreenY());
				e.consume();
			}
				
		});
		return vBox;
	}
 
源代码4 项目: FXGLGames   文件: GoapSample.java
@Override
protected void initInput() {
    onBtnDown(MouseButton.PRIMARY, "move", () -> {
        player.getComponent(ActionComponent.class).pushAction(new ContinuousAction() {
            Point2D p = new Point2D(getInput().getMouseXWorld(), getInput().getMouseYWorld());

            @Override
            protected void perform(double tpf) {

                if (player.getPosition().distance(p) > 10) {
                    player.getTransformComponent().translateTowards(p, 5);
                } else {
                    isCompleted = true;
                }
            }
        });
    });
}
 
源代码5 项目: graph-editor   文件: ConnectorDragManager.java
/**
 * Handles mouse-dragged events on the given connector.
 *
 * @param event a mouse-dragged event
 * @param connector the {@link GConnector} on which this event occured
 */
private void handleMouseDragged(final MouseEvent event, final GConnector connector) {

    if (!event.getButton().equals(MouseButton.PRIMARY)) {
        return;
    }

    if (!repositionAllowed) {
        event.consume();
        return;
    }

    // Case for when the mouse first exits a connector during a drag gesture.
    if (removalConnector != null && !removalConnector.equals(hoveredConnector)) {
        detachConnection(event, connector);
    } else {
        tailManager.updatePosition(event);
    }

    event.consume();
}
 
源代码6 项目: gef   文件: FXNonApplicationThreadRule.java
/**
 * Fires a newly created {@link MouseEvent} of type
 * {@link MouseEvent#MOUSE_RELEASED} to the target {@link Node} of the last
 * mouse interaction.
 *
 * @param mods
 *            The {@link Modifiers} for the {@link MouseEvent}.
 */
public void mouseRelease(final Modifiers mods) {
	waitForIdle();
	run(() -> {
		Point2D local = lastMouseInteraction.target.sceneToLocal(lastMouseInteraction.sceneX,
				lastMouseInteraction.sceneY);
		Point2D screen = lastMouseInteraction.target.localToScreen(local.getX(), local.getY());
		fireEvent(lastMouseInteraction.target,
				new MouseEvent(lastMouseInteraction.target, lastMouseInteraction.target, MouseEvent.MOUSE_RELEASED,
						local.getX(), local.getY(), screen.getX(), screen.getY(), MouseButton.PRIMARY, 1,
						mods.shift, mods.control, mods.alt, mods.meta, false, false, false, false, false, false,
						new PickResult(lastMouseInteraction.target, lastMouseInteraction.sceneX,
								lastMouseInteraction.sceneY)));
	});
	waitForIdle();
}
 
源代码7 项目: oim-fx   文件: ListNodePanel.java
private void iniEvent() {
    topBox.setOnMouseClicked(new EventHandler<MouseEvent>() {
        @Override
        public void handle(MouseEvent event) {
        	if(event.getButton()==MouseButton.PRIMARY) {
        		if (isShow) {
                    isShow = false;
                    imageView.setImage(closed);
                    ListNodePanel.this.getChildren().remove(box);
                } else {
                    isShow = true;
                    imageView.setImage(open);
                    ListNodePanel.this.getChildren().add(box);
                }
        	}
        }
    });
}
 
源代码8 项目: iliasDownloaderTool   文件: ResultList.java
private void showContextMenu(MouseEvent event) {
	menu.hide();
	final List<IliasTreeNode> selectedNodes = ((ResultList) event.getSource())
			.getSelectionModel().getSelectedItems();
	if (selectedNodes.isEmpty() || selectedNodes == null) {
		return;
	}
	if (selectedNodes.size() == 1) {
		dashboard.getCoursesTreeView().selectFile((IliasFile) selectedNodes.get(0));
	}

	if (event.getButton() == MouseButton.SECONDARY) {
		menu = new FileContextMenu(dashboard).createMenu(selectedNodes, event);
		menu.show(this, event.getScreenX(), event.getScreenY());
	}
}
 
源代码9 项目: latexdraw   文件: Pencil.java
/**
 * Binds a DnD interaction to draw squared shapes.
 */
private void bindDnDToDrawSquaredShape() {
	nodeBinder()
		.usingInteraction(() -> new DnD(false, true))
		.toProduce(i -> {
			final SquaredShape sq = (SquaredShape) editing.createShapeInstance();
			final Point pt = getAdaptedPoint(i.getSrcLocalPoint());
			sq.setPosition(pt.getX() - 1d, pt.getY() - 1d);
			sq.setWidth(2d);
			return new AddShape(sq, canvas.getDrawing());
		})
		.on(canvas)
		.first((i, c) -> {
			canvas.requestFocus();
			canvas.setTempView(viewFactory.createView(c.getShape()).orElse(null));
		})
		.then((i, c) -> updateShapeFromCentre((SquaredShape) c.getShape(), getAdaptedPoint(i.getSrcLocalPoint()), getAdaptedPoint(i.getTgtLocalPoint()).getX()))
		.endOrCancel(i -> canvas.setTempView(null))
		.when(i -> i.getButton() == MouseButton.PRIMARY && (editing.getCurrentChoice() == EditionChoice.SQUARE ||
			editing.getCurrentChoice() == EditionChoice.CIRCLE || editing.getCurrentChoice() == EditionChoice.CIRCLE_ARC))
		.strictStart()
		.bind();
}
 
源代码10 项目: FXGLGames   文件: GoapSample.java
@Override
protected void initInput() {
    onBtnDown(MouseButton.PRIMARY, "move", () -> {
        player.getComponent(ActionComponent.class).pushAction(new ContinuousAction() {
            Point2D p = new Point2D(getInput().getMouseXWorld(), getInput().getMouseYWorld());

            @Override
            protected void perform(double tpf) {

                if (player.getPosition().distance(p) > 10) {
                    player.getTransformComponent().translateTowards(p, 5);
                } else {
                    isCompleted = true;
                }
            }
        });
    });
}
 
源代码11 项目: jfxutils   文件: JFXChartUtil.java
/**
 * Returns an {@link EventHandler} that sets X and/or Y axis auto ranging when the primary mouse button is
 * double-clicked. If the click occurs inside the X axis area auto range only the X axis and similarly for Y axis. But
 * if the event is in the plot area or anywhere else, auto range both axes.
 */
public static EventHandler<MouseEvent> getDoublePrimaryClickAutoRangeHandler( final XYChartInfo chartInfo ) {
	return new EventHandler<MouseEvent>() {
		@Override
		public void handle( MouseEvent event ) {
			if ( event.getClickCount() == 2 && event.getButton() == MouseButton.PRIMARY ) {
				double x = event.getX();
				double y = event.getY();
				if ( !chartInfo.getXAxisArea().contains( x, y ) )
					chartInfo.getChart().getYAxis().setAutoRanging( true );
				if ( !chartInfo.getYAxisArea().contains( x, y ) )
					chartInfo.getChart().getXAxis().setAutoRanging( true );
			}
		}
	};
}
 
源代码12 项目: games_oop_javafx   文件: TicTacToe.java
private EventHandler<MouseEvent> buildMouseEvent(Group panel) {
    return event -> {
        Figure3T rect = (Figure3T) event.getTarget();
        if (this.checkState()) {
            if (event.getButton() == MouseButton.PRIMARY) {
                rect.take(true);
                panel.getChildren().add(
                        this.buildMarkX(rect.getX(), rect.getY(), 50)
                );
            } else {
                rect.take(false);
                panel.getChildren().add(
                        this.buildMarkO(rect.getX(), rect.getY(), 50)
                );
            }
            this.checkWinner();
            this.checkState();
        }
    };
}
 
源代码13 项目: FXGLGames   文件: SpaceRunnerApp.java
@Override
protected void initInput() {
    onKey(KeyCode.W, () -> playerComponent.up());
    onKey(KeyCode.S, () -> playerComponent.down());

    getInput().addAction(new UserAction("Change Weapon") {
        @Override
        protected void onAction() {
            playerComponent.changeWeapon();

            weaponTexture.setImage(image("sprite_laser.png"));
            bullets.textProperty().bind(getip("laser").asString("x %d"));
        }
    }, KeyCode.F);

    getInput().addAction(new UserAction("Shoot") {
        @Override
        protected void onAction() {
            playerComponent.shoot();
        }
    }, MouseButton.PRIMARY);
}
 
源代码14 项目: graph-editor   文件: ConnectorDragManager.java
/**
 * Handles mouse-released events on the given connector.
 *
 * @param event a mouse-released event
 * @param connector the {@link GConnector} on which this event occured
 */
private void handleMouseReleased(final MouseEvent event, final GConnector connector) {

    if (!event.getButton().equals(MouseButton.PRIMARY)) {
        return;
    }

    if (targetConnector != null && skinLookup.lookupConnector(targetConnector) != null) {
        skinLookup.lookupConnector(targetConnector).applyStyle(GConnectorStyle.DEFAULT);
    }

    sourceConnector = null;
    removalConnector = null;
    repositionAllowed = true;

    tailManager.cleanUp();

    event.consume();
}
 
源代码15 项目: Recaf   文件: ContextHandling.java
/**
 * @param controller
 * 		Controller to use.
 * @param codeArea
 * 		Text editor events originate from.
 */
public ContextHandling(GuiController controller, CodeArea codeArea) {
	this.codeArea = codeArea;
	this.controller = controller;
	codeArea.setOnMousePressed(e -> {
		// Only accept right-click presses
		if (e.getButton() != MouseButton.SECONDARY)
			return;
		// Reset
		codeArea.setContextMenu(null);
		// Mouse to location
		CharacterHit hit = codeArea.hit(e.getX(), e.getY());
		int charPos = hit.getInsertionIndex();
		codeArea.getCaretSelectionBind().displaceCaret(charPos);
		TwoDimensional.Position pos = codeArea.offsetToPosition(charPos,
				TwoDimensional.Bias.Backward);
		// Get selection
		Object selection = getSelection(pos);
		if (selection == null)
			return;
		if (consumer != null)
			consumer.accept(selection);
	});
}
 
源代码16 项目: FXTutorials   文件: DesktopApp.java
DesktopWindow(Parent root) {
    setBackground(new Background(new BackgroundFill(Color.BLUE, null, null)));

    root.setTranslateY(15);

    setOnMousePressed(e -> {
        offsetX = e.getX();
        offsetY = e.getY();
    });

    setOnMouseDragged(e -> {
        if (e.getButton() != MouseButton.PRIMARY)
            return;

        setTranslateX(e.getSceneX() - offsetX);
        setTranslateY(e.getSceneY() - offsetY);
    });

    getChildren().add(root);
}
 
源代码17 项目: marathonv5   文件: RFXButtonBaseTest.java
@Test
public void getText() {
    Button button = (Button) getPrimaryStage().getScene().getRoot().lookup(".button");
    LoggingRecorder lr = new LoggingRecorder();
    List<String> text = new ArrayList<>();
    Platform.runLater(new Runnable() {
        @Override
        public void run() {
            RFXButtonBase rfxButtonBase = new RFXButtonBase(button, null, null, lr);
            Point2D sceneXY = button.localToScene(new Point2D(3, 3));
            PickResult pickResult = new PickResult(button, sceneXY.getX(), sceneXY.getY());
            Point2D screenXY = button.localToScreen(new Point2D(3, 3));
            MouseEvent me = new MouseEvent(button, button, MouseEvent.MOUSE_PRESSED, 3, 3, sceneXY.getX(), screenXY.getY(),
                    MouseButton.PRIMARY, 1, false, false, false, false, true, false, false, false, false, false, pickResult);
            rfxButtonBase.mouseButton1Pressed(me);
            text.add(rfxButtonBase.getAttribute("text"));
        }
    });
    new Wait("Waiting for button text.") {
        @Override
        public boolean until() {
            return text.size() > 0;
        }
    };
    AssertJUnit.assertEquals("Color", text.get(0));
}
 
源代码18 项目: arma-dialog-creator   文件: UICanvasEditor.java
/**
 This is called when the mouse listener is invoked and a mouse release was the event

 @param mousex x position of mouse relative to canvas
 @param mousey y position of mouse relative to canvas
 @param mb mouse button that was released
 */
protected void mouseReleased(int mousex, int mousey, @NotNull MouseButton mb) {
	this.mouseButtonDown = MouseButton.NONE;
	selection.setSelecting(false);
	setContextMenu(null, mousex, mousey);
	contextMenuControl = null;
	if (mb == MouseButton.SECONDARY) {
		if (menuCreator != null && selection.getFirst() != null) {
			contextMenuControl = selection.getFirst();
			setContextMenu(menuCreator.initialize(contextMenuControl.getComponent()), mousex, mousey);
		} else if (canvasContextMenu != null) {
			setContextMenu(canvasContextMenu, mousex, mousey);
		}
	} else {
		if (hasDoubleClickedCtrl) {
			doubleClickUpdateGroup.update(selection.getFirst());
		}
	}
}
 
源代码19 项目: arma-dialog-creator   文件: UICanvasPreview.java
@Override
protected void mouseReleased(int mousex, int mousey, @NotNull MouseButton mb) {
	if (mousePressControl == null) {
		return;
	}
	mousePressControl.getRenderer().mouseRelease();
	if (mousePressControl.getRenderer().canHaveFocus()) {
		focusHandler.setFocusedControl(mousePressControl);
	}
}
 
源代码20 项目: BetonQuest-Editor   文件: EcoController.java
/**
 * Sets the objectives in the ListView
 * 
 * @param objectives list of objectives in the package
 */
public static void setObjectives(ObservableList<Objective> objectives) {
	instance.objectivesList.setCellFactory(param -> new DraggableListCell<>());
	instance.objectivesList.setItems(objectives);
	instance.objectivesList.getSelectionModel().selectedItemProperty().addListener(event -> {
		instance.update();
	});
	instance.objectivesList.setOnMouseClicked(event -> {
		if (event.getButton() == MouseButton.PRIMARY && event.getClickCount() == 2) {
			instance.editObjective();
		}
	});
	instance.update();
}
 
源代码21 项目: FXGLGames   文件: RTSApp.java
@Override
protected void initInput() {
    onBtnDown(MouseButton.PRIMARY, () -> {
        var worker = byType(WORKER).get(0);
        worker.getComponent(GathererComponent.class).sendTo(getInput().getMousePositionWorld());
    });
}
 
源代码22 项目: graph-editor   文件: SelectionCreator.java
/**
 * Handles mouse-released events on the given node.
 *
 * @param event a mouse-released event
 * @param node the {@link GNode} on which this event occured
 */
private void handleNodeReleased(final MouseEvent event, final GNode node) {

    if (!event.getButton().equals(MouseButton.PRIMARY)) {
        return;
    }

    selectionDragManager.unbindPositions(node);
    event.consume();
}
 
源代码23 项目: pmd-designer   文件: ControlUtil.java
public static Subscription registerDoubleClickListener(javafx.scene.Node node, Runnable action) {
    return ReactfxUtil.addEventHandler(
        node,
        MouseEvent.MOUSE_CLICKED,
        e -> {
            if (e.getButton() == MouseButton.PRIMARY
                && e.getClickCount() > 1) {
                action.run();
                e.consume();
            }
        });

}
 
public void addListener(ListView<VBox> vBoxListView) {
    contextMenu = vBoxListView.getContextMenu();
    vBoxListView.addEventHandler(MouseEvent.MOUSE_CLICKED, event -> {
        if (event.getButton() == MouseButton.SECONDARY) {
            ObservableList<VBox> selectedItems = vBoxListView.getSelectionModel().getSelectedItems();
            if (selectedItems.size() != 1) {
                vBoxListView.setContextMenu(null);
            } else {
                vBoxListView.setContextMenu(contextMenu);
            }
        }
    });
}
 
源代码25 项目: JavaFXSmartGraph   文件: SmartGraphPanel.java
/**
 * Enables the double click action on this pane.
 *
 * This method identifies the node that was clicked and, if any, calls the
 * appropriate consumer, i.e., vertex or edge consumers.
 */
private void enableDoubleClickListener() {
    setOnMouseClicked((MouseEvent mouseEvent) -> {
        if (mouseEvent.getButton().equals(MouseButton.PRIMARY)) {
            if (mouseEvent.getClickCount() == 2) {
                //no need to continue otherwise
                if (vertexClickConsumer == null && edgeClickConsumer == null) {
                    return;
                }

                Node node = pick(SmartGraphPanel.this, mouseEvent.getSceneX(), mouseEvent.getSceneY());
                if (node == null) {
                    return;
                }

                if (node instanceof SmartGraphVertex) {
                    SmartGraphVertex v = (SmartGraphVertex) node;
                    vertexClickConsumer.accept(v);
                } else if (node instanceof SmartGraphEdge) {
                    SmartGraphEdge e = (SmartGraphEdge) node;
                    edgeClickConsumer.accept(e);
                }

            }
        }
    });
}
 
源代码26 项目: Augendiagnose   文件: EyePhotoPairNode.java
/**
 * Constructor given a pair of eye photos.
 *
 * @param pair
 *            The eye photo pair.
 * @param initialParentController
 *            The parent controller.
 */
@SuppressFBWarnings(value = "UR_UNINIT_READ", justification = "Is initialized via fxml")
public EyePhotoPairNode(final EyePhotoPair pair, final DisplayPhotosController initialParentController) {
	mParentController = initialParentController;
	mPair = pair;

	FxmlUtil.loadFromFxml(this, FxmlConstants.FXML_EYE_PHOTO_PAIR_NODE);

	mLabelDate.setText(pair.getDateDisplayString());

	if (pair.getRightEye() != null) {
		mImageViewRight.setImageView(getImageView(pair.getRightEye()));
	}
	if (pair.getLeftEye() != null) {
		mImageViewLeft.setImageView(getImageView(pair.getLeftEye()));
	}

	mLabelDate.setOnMouseClicked(new EventHandler<MouseEvent>() {
		@Override
		public void handle(final MouseEvent event) {
			if (event.getButton() != MouseButton.PRIMARY) {
				return;
			}
			if (MainController.getInstance().isSplitPane()) {
				return;
			}

			if (pair.isComplete()) {
				DisplayImagePairController controller =
						(DisplayImagePairController) FxmlUtil.displaySubpage(FxmlConstants.FXML_DISPLAY_IMAGE_PAIR, -1, true);
				controller.setEyePhotos(pair);
			}
		}
	});

	mLabelDate.setContextMenu(createDateContextMenu());
}
 
源代码27 项目: trex-stateless-gui   文件: PacketHex.java
/**
 *
 */
public TextFieldCell() {
    textField = new TextField();
    textField.addEventFilter(KeyEvent.KEY_TYPED, hex_Validation(50));
    textField.getStyleClass().add("hexTextFieldEditor");
    textField.setEditable(false);
    textField.setOnMouseClicked((MouseEvent mouseEvent) -> {
        if (mouseEvent.getButton().equals(MouseButton.PRIMARY) && mouseEvent.getClickCount() == 2) {
            handleMouseClickedEvent();
        }
    });
    this.setGraphic(textField);
}
 
源代码28 项目: devcoretalk   文件: ClickableBitcoinAddress.java
@FXML
protected void requestMoney(MouseEvent event) {
    if (event.getButton() == MouseButton.SECONDARY || (event.getButton() == MouseButton.PRIMARY && event.isMetaDown())) {
        // User right clicked or the Mac equivalent. Show the context menu.
        addressMenu.show(addressLabel, event.getScreenX(), event.getScreenY());
    } else {
        // User left clicked.
        try {
            Desktop.getDesktop().browse(URI.create(uri()));
        } catch (IOException e) {
            GuiUtils.informationalAlert("Opening wallet app failed", "Perhaps you don't have one installed?");
        }
    }
}
 
源代码29 项目: tuxguitar   文件: JFXMouseButton.java
private static Map<MouseButton, Integer> createMouseButtonMap() {
	Map<MouseButton, Integer> cursorMap = new HashMap<MouseButton, Integer>();
	cursorMap.put(MouseButton.NONE, 0);
	cursorMap.put(MouseButton.PRIMARY, 1);
	cursorMap.put(MouseButton.MIDDLE, 2);
	cursorMap.put(MouseButton.SECONDARY, 3);
	
	return cursorMap;
}
 
源代码30 项目: FXGLGames   文件: SpaceRangerApp.java
@Override
protected void initInput() {
    onKey(KeyCode.W, () -> getGameWorld().getSingleton(EntityType.PLAYER).translateY(-5));
    onKey(KeyCode.S, () -> getGameWorld().getSingleton(EntityType.PLAYER).translateY(5));

    onBtnDown(MouseButton.PRIMARY, () -> {
        double y = getGameWorld().getSingleton(EntityType.PLAYER).getY();
        spawn("projectile", 0, y + 10);
        spawn("projectile", 0, y + 50);
    });
}
 
 类所在包
 同包方法