javafx 右键 菜单,右键单击JavaFX?

How do I detect/handle a right click in JavaFX?

解决方案

Here's one way:

import javafx.stage.Stage;

import javafx.scene.Scene;

import javafx.scene.shape.Rectangle;

import javafx.scene.paint.Color;

import javafx.scene.input.*;

var r = Rectangle {

x: 50, y: 50

width: 120, height: 120

fill: Color.RED

onMouseClicked: function(e:MouseEvent):Void {

if (e.button == MouseButton.SECONDARY) {

println("Right button clicked");

}

}

}

Stage {

title : "ClickTest"

scene: Scene {

width: 200

height: 200

content: [ r ]

}

}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
您可以使用JavaFX中的`ContextMenu`和`MenuItem`类来创建快捷菜单,并使用`Button`类的`setContextMenu()`方法将其绑定到按钮上。以下是一个示例代码,实现了选择目录和打开目录两个功能菜单: ```java import javafx.application.Application; import javafx.stage.DirectoryChooser; import javafx.stage.Stage; import javafx.scene.Scene; import javafx.scene.control.Button; import javafx.scene.control.ContextMenu; import javafx.scene.control.MenuItem; import java.awt.Desktop; import java.io.File; import java.io.IOException; public class ButtonContextMenuExample extends Application { @Override public void start(Stage primaryStage) { Button button = new Button("打开目录"); // 创建选择目录菜单项 MenuItem chooseDirItem = new MenuItem("选择目录"); chooseDirItem.setOnAction(event -> { DirectoryChooser directoryChooser = new DirectoryChooser(); directoryChooser.setTitle("选择目录"); File selectedDirectory = directoryChooser.showDialog(primaryStage); if (selectedDirectory != null) { System.out.println(selectedDirectory.getAbsolutePath()); } }); // 创建打开目录菜单项 MenuItem openDirItem = new MenuItem("打开目录"); openDirItem.setOnAction(event -> { File file = new File("文件目录路径"); if (file.exists()) { try { Desktop.getDesktop().open(file); } catch (IOException e) { e.printStackTrace(); } } }); // 创建上下文菜单 ContextMenu contextMenu = new ContextMenu(); contextMenu.getItems().addAll(chooseDirItem, openDirItem); // 将上下文菜单绑定到按钮上 button.setContextMenu(contextMenu); Scene scene = new Scene(button, 200, 100); primaryStage.setScene(scene); primaryStage.show(); } public static void main(String[] args) { launch(args); } } ``` 在这段代码中,您需要将`chooseDirItem`和`openDirItem`中的`"文件目录路径"`替换为您想要选择或打开的目录路径。当您运行这段代码时,将在窗口中显示一个按钮,右键单击按钮时将显示快捷菜单,包含选择目录和打开目录两个功能菜单

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值