我使用JavaFX创建一个蓝色矩形。

当鼠标移到蓝色矩形所覆盖的区域时,能否将矩形的颜色更改为红色,而当鼠标移出矩形时,是否可以将其更改为蓝色?

我创建的矩形:

public class ColorfulRectangle extends Application {

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

    @Override
    public void start(Stage primaryStage) {
    Group root = new Group();
    Scene scene = new Scene(root, 400, 300, Color.WHITE);

    Rectangle rect1 = RectangleBuilder.create()
    .x(50)
    .y(50)
    .width(100)
    .height(100)
    .fill(Color.BLUE)
    .build();

    root.getChildren().add(rect1);
    primaryStage.setScene(scene);
    primaryStage.show();
}
}

最佳答案

我建议阅读一些有关MouseEvents in JavaFX的信息。

至于你的答案:

rect1.setOnMouseEntered(new EventHandler<MouseEvent>() {
public void handle(MouseEvent me) {
    rect1.setFill(Color.RED);
}
});

rect1.setOnMouseExited(new EventHandler<MouseEvent>() {
public void handle(MouseEvent me) {
    rect1.setFill(Color.BLUE);
}
});

09-13 05:47