我有一个弹出按钮按下
当我按下一个按钮时,弹出窗口就会出现。
public class Main extends Application {
@Override
public void start(Stage primaryStage) throws Exception {
StackPane root = new StackPane();
root.setPrefWidth(200);
root.setPrefHeight(200);
Button btn = new Button("Press");
root.getChildren().add(btn);
root.setOnMouseDragged(e-> System.out.println("draaaag"));
root.setOnMousePressed(e-> System.out.println("PRESSED"));
root.setOnMouseReleased(e-> System.out.println("RELEASED !!!!!!!!!!!!!!!"));
Scene scene = new Scene(root);
Popup popup = new Popup();
popup.getContent().add(new Label("POPUP"));
popup.setAutoHide(true);
popup.setAutoFix(true);
btn.setOnMouseClicked(ev -> {
popup.show(primaryStage);
});
primaryStage.setScene(scene);
primaryStage.show();
}
}背景有mouseDrag、mousePress和mouseRelease事件。
当我打开弹出并单击根目录时,弹出窗口会像预期的那样隐藏,但与所有其他操作相比,根区域只会首先通知mouseRelease和拖动操作。
IWant在根上监听mousePress,即使弹出窗口显示.
发布于 2022-03-24 20:48:11
我知道答案了。
事件在自动隐藏时被消耗。
所以
popup.setConsumeAutoHidingEvent(false)
它能完成任务。
发布于 2022-03-24 18:08:16
弹出窗口被管理为比插入的窗口更高的窗口。因此,还必须插入onMouseRelease事件才能弹出:
popup.getContent().get(0).setOnMouseReleased(e -> System.out.println("Popup clicked!"));
还可以添加一个具有不同背景的样式标签,以突出显示弹出窗口:
Label label = new Label("POPUP");
label.setStyle("-fx-background-color: grey;");
popup.getContent().add(label);
label.setOnMouseReleased(e -> System.out.println("Popup clicked!"));https://stackoverflow.com/questions/71604596
复制相似问题