我正在做我的大项目,当涉及到上下文菜单时,它没有成功,我尝试在一个简单的项目中确保我的项目的复杂性阻止显示弹出菜单,但即使在一个简单的项目上没有成功,看起来像一个错误
package org.example.testinterface;
import javafx.application.Application;
import javafx.scene.Scene;
import javafx.scene.canvas.Canvas;
import javafx.scene.control.ContextMenu;
import javafx.scene.control.MenuItem;
import javafx.scene.layout.AnchorPane;
import javafx.stage.Stage;
import java.io.IOException;
public class HelloApplication extends Application {
@Override
public void start(Stage stage) throws IOException {
ContextMenu contextMenu = new ContextMenu(new MenuItem("Удалить"));
contextMenu.setStyle("-fx-background-color: red");
Canvas canvas = new Canvas(1500, 1000);
canvas.setOnContextMenuRequested(contextMenuEvent -> {
System.out.println("2222222222222222222222222222");
contextMenu.show(canvas.getScene().getWindow(), contextMenuEvent.getX(), contextMenuEvent.getY());
});
AnchorPane root = new AnchorPane(canvas);
Scene scene = new Scene(root, 1500, 1000);
stage.setTitle("Hello!");
stage.setScene(scene);
stage.show();
}
public static void main(String[] args) {
launch();
}
}
使用
getScreenX() / getScreenY(
) 代替 getX() / getY()
。