java - 光标的坐标位置和颜色在一定条件下变化 - JavaFX

标签 java javafx

我开始学习 JavaFX。我制作了一个创建形状的简单程序。

我想做基本的事件驱动执行方法,比如:

  1. 如果光标位于形状内,则打印光标的坐标
  2. 每次光标进入形状时更改颜色,然后在超出形状时将其更改回原始颜色

以下是我所做的

import javafx.application.Application;
import javafx.scene.paint.Color;
import javafx.scene.shape.Circle;
import javafx.scene.Scene;
import javafx.stage.Stage;
import javafx.scene.Group;
import javafx.scene.shape.Rectangle;
import javafx.scene.shape.Polygon;


public class ColouredShapes extends Application {

    @Override
    public void start(Stage stage) {
        int radius = 40;
        int strokeWidth = 3;
        Color strokeColor = Color.BROWN;

        Circle circle1 = new Circle(250, 125, radius, Color.RED);
        circle1.setStroke(strokeColor);
        circle1.setStrokeWidth(strokeWidth);

        Rectangle square = new Rectangle(375, 85, 80, 80);
        square.setFill(Color.BLUE);
        square.setStroke(strokeColor);
        square.setStrokeWidth(strokeWidth);

        Polygon polygon = new Polygon();
        polygon.getPoints().addAll(new Double[]{
                50.0, 85.0,
               110.0, 60.0, 125.0, 175.0});

        polygon.setFill(Color.YELLOWGREEN);

        Group root = new Group();
        root.getChildren().addAll(circle1, square, polygon);
        Scene scene = new Scene(root, 500, 250, Color.LIGHTYELLOW);
        stage.setScene(scene);
        stage.show();

    }
    public static void maint(String[] args){
        launch(args);
    }
}

最佳答案

向形状添加鼠标进入、退出和移动事件处理程序

square.setOnMouseMoved(new EventHandler<MouseEvent>() {

  @Override
  public void handle(final MouseEvent event) {

      System.out.println(event.getScreenX());
      System.out.println(event.getScreenY());
    }
});
square.setOnMouseEntered(new EventHandler<MouseEvent>() {

  @Override
  public void handle(final MouseEvent event) {
    square.setFill(Color.GREEN);
  }
});
square.setOnMouseExited(new EventHandler<MouseEvent>() {

  @Override
  public void handle(final MouseEvent event) {
    square.setFill(null);

  }
});

关于java - 光标的坐标位置和颜色在一定条件下变化 - JavaFX,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44060914/

相关文章:

java - 如何解决我的 JavaFX TableView 中的这个视觉故障?

JavaFX,外部类扩展 Pane ,将其添加到主类不起作用

Java 以一种干净的方式动态地在多个按钮上使用事件处理程序

java - 在android中通过libmedia播放加密视频

java - 如果java中两个字符串文字和字符串对象的哈希码相同,那么如果它们通过 == 进行比较,则发现 false。为什么?

java - 如何使用java读取xml中的替代标签?

java - 使用 getLaunchIntentForPackage 时出现 NullPointerException

java - 从集合中获取对象

java - 创建一个可观察的列表/集合

java - 使用JSlider实时更新JLabel