我是Java的新手,我想知道是否可以检查鼠标光标是否位于按钮上?我的意思是没有点击事件,只是在按钮上移动了光标。
我的工作代码是单击然后打印一些东西,但是我想对其进行一些更改,所以我找不到为什么它不起作用。
public class Main extends Application implements EventHandler<MouseEvent> {
Button button;
Stage window;
Scene scene;
@Override
public void start(Stage primaryStage) throws Exception {
Parent root = FXMLLoader.load(getClass().getResource("sample.fxml"));
primaryStage.setTitle("Where's the button?");
button.setText("Click me!");
button.setOnMouseMoved(this);
StackPane layout = new StackPane();
layout.getChildren().add(button);
Scene scene = new Scene(layout, 300,350);
primaryStage.setScene(scene);
primaryStage.show();
}
public static void main(String[] args) {
launch(args);
}
@Override
public void handle(MouseEvent actionEvent) {
System.out.println("You clicked the button!");
}
}
答案 0 :(得分:1)
我为您编写了一些小代码。看一看。它在控制台上显示“ Ho-Ho-Ho-Hovereed!”。将鼠标悬停在按钮上。
@Override
public void start(Stage primaryStage) {
Button btn = new Button();
btn.setText("Hover over me.'");
btn.hoverProperty().addListener((event)->System.out.println("Ho-Ho-Ho-Hovereeed!"));
StackPane root = new StackPane();
root.getChildren().add(btn);
Scene scene = new Scene(root, 300, 250);
primaryStage.setTitle("Mouse manpulation example in JavaFX!");
primaryStage.setScene(scene);
primaryStage.show();
}
答案 1 :(得分:0)
我想您可以使用事件处理程序或CSS来做到这一点,例如...
button.setOnMouseEntered(new EventHandler<MouseEvent>() {
@Override
public void handle(MouseEvent mouseEvent) {
System.out.println("Cursor Over Button");
}
});
或/具有样式(css)
.button:hover{
-fx-background-color: red;
}
答案 2 :(得分:0)
每个Node
提供一个hover
属性来跟踪鼠标光标是否悬停在其上。通过使用简单的侦听器,您可以检测到鼠标何时开始和停止悬停:
button.hoverProperty().addListener((observable, oldValue, newValue) -> {
if (newValue) {
System.out.println("Hovering...");
} else {
System.out.println("Retreating...");
}
});
使用此侦听器,如果鼠标当前悬停在按钮上,newValue
将始终为true
,并且当鼠标离开该区域时,其变为false
。
答案 3 :(得分:-3)
button.setOnMouseEntered( (event ) -> {
button.setTranslateX(button.getTranslateX() + 20);
button.setTranslateY(button.getTranslateY() + 20);
});`
用我的代码替换button.setOnMouseMoved(this);
。会的!