我可以仅使用功能键(例如 "F11")作为 Java FX 中的热键吗?
Can I use ONLY Function Keys ("F11" for example) as a hot key in Java FX?
我正在尝试使用 JavaFX 为桌面应用程序创建一些菜单选项。已请求的一项要求是将功能键 F1-F12 映射到特定操作,而不需要像 这样的修饰键Ctrl、Shift等
这可能吗?当我尝试在 SceneBuilder 中添加这些时,UI 似乎需要修饰符 - 它不允许我 select "none" + F11 例如。
谢谢。
也许这个
scene.getAccelerators().put(
new KeyCodeCombination( KeyCode.F10 ),
new Runnable()
{
@Override
public void run()
{
// just do action
}
}
);
由于我是动态创建菜单 - 我可以执行以下操作:
mi.setOnAction(event -> {
...do some stuff
});
if(child.hasKeyCode())){
KeyCode kc = KeyCode.getKeyCode(child.getKeyCode());
mi.setAccelerator(new KeyCodeCombination(kc)); }
parentMenu.getItems().add(mi);
[编辑]
我发现在 SceneBuilder 中,如果您 select 一个修饰符并将 FXML 中的值从 ANY 或 DOWN 更改为 UP 然后功能键,它将起作用。
我正在尝试使用 JavaFX 为桌面应用程序创建一些菜单选项。已请求的一项要求是将功能键 F1-F12 映射到特定操作,而不需要像 这样的修饰键Ctrl、Shift等
这可能吗?当我尝试在 SceneBuilder 中添加这些时,UI 似乎需要修饰符 - 它不允许我 select "none" + F11 例如。
谢谢。
也许这个
scene.getAccelerators().put(
new KeyCodeCombination( KeyCode.F10 ),
new Runnable()
{
@Override
public void run()
{
// just do action
}
}
);
由于我是动态创建菜单 - 我可以执行以下操作:
mi.setOnAction(event -> {
...do some stuff
});
if(child.hasKeyCode())){
KeyCode kc = KeyCode.getKeyCode(child.getKeyCode());
mi.setAccelerator(new KeyCodeCombination(kc)); }
parentMenu.getItems().add(mi);
[编辑]
我发现在 SceneBuilder 中,如果您 select 一个修饰符并将 FXML 中的值从 ANY 或 DOWN 更改为 UP 然后功能键,它将起作用。