为了简化JavaFx应用程序的使用,我希望允许用户定义一个键盘组合/快捷键来触发应用程序最重要的操作。
我知道如何在代码中定义KeyCodeCombination
并将其设置为加速器
或在KeyEvent侦听器中使用它,但我希望允许用户只需在键盘上的某个设置对话框中按下它,就可以定义自己的KeyCodeCombination。
基本上沿着这个伪代码:
// how would I implement the next two lines
Dialog dialog = new KeyboardShortcutDefinitionDialog();
KeyCombination shortcut = dialog.recordKeyboardShortcut();
// I know how to do the rest from here
shortcutLabel.setText(shortcut.toString());
SettingsManager.storeShortcut(shortcut);
Application.setupShortcut(shortcut);
下面是一个监听key_pressed
事件并从中构建keysociate
的小示例。
import java.util.ArrayList;
import javafx.application.Application;
import javafx.scene.Scene;
import javafx.scene.control.Label;
import javafx.scene.input.KeyCodeCombination;
import javafx.scene.input.KeyCombination;
import javafx.scene.input.KeyCombination.Modifier;
import javafx.scene.input.KeyEvent;
import javafx.scene.layout.StackPane;
import javafx.scene.text.Font;
import javafx.stage.Stage;
public class Main extends Application {
@Override
public void start(Stage primaryStage) {
var label = new Label();
label.setFont(Font.font("Segoe UI", 15));
primaryStage.addEventHandler(KeyEvent.KEY_PRESSED, event -> {
if (!event.getCode().isModifierKey()) {
label.setText(createCombo(event).getDisplayText());
}
});
primaryStage.setScene(new Scene(new StackPane(label), 500, 300));
primaryStage.setResizable(false);
primaryStage.show();
}
private KeyCombination createCombo(KeyEvent event) {
var modifiers = new ArrayList<Modifier>();
if (event.isControlDown()) {
modifiers.add(KeyCombination.CONTROL_DOWN);
}
if (event.isMetaDown()) {
modifiers.add(KeyCombination.META_DOWN);
}
if (event.isAltDown()) {
modifiers.add(KeyCombination.ALT_DOWN);
}
if (event.isShiftDown()) {
modifiers.add(KeyCombination.SHIFT_DOWN);
}
return new KeyCodeCombination(event.getCode(), modifiers.toArray(Modifier[]::new));
}
}
在 Illustrator 中,可以查看所有快捷键的列表,还可以编辑或创建快捷键。键盘快捷键对话框作为快捷键编辑器,包括所有支持快捷键的命令,其中一些未在默认快捷键集中提到。 您可以定义自己的快捷键集,更改快捷键集中的个别快捷键以及在快捷键集之间切换。例如,您可以为从 “窗口 ”>“工作区 ”菜单中选择的不同工作区创建单独的组。 除了使用键盘快捷键外,您还可以使用上下文相关菜单来访问很多命令。上下
可以在 Illustrator 中使用键盘快捷键来提高工作效率。可以使用 Illustrator 中包含的默认快捷键,或添加和自定所需的快捷键。 在 Illustrator 中,可以查看所有快捷键的列表,还可以编辑或创建快捷键。键盘快捷键对话框作为快捷键编辑器,包括所有支持快捷键的命令,其中一些未在默认快捷键集中提到。 您可以定义自己的快捷键集,更改快捷键集中的个别快捷键以及在快捷键集之间切换。例
Photoshop 允许您查看所有快捷键的列表,并编辑或创建快捷键。“键盘快捷键”对话框充当一个快捷键编辑器,并包括所有支持快捷键的命令,其中一些是默认快捷键组中没有提到的。 注意:除了使用键盘快捷键之外,您还可以使用与现用工具、选区或面板关联的上下文相关菜单来访问许多命令。要显示上下文相关菜单,请在文档窗口或面板中单击鼠标右键。 定义新的键盘快捷键 执行下列操作之一: 选取“编辑”>“键盘快捷键
主要内容:Windows 和 Mac 的键盘快捷键,基本的快捷键,文本编辑,Web 浏览器,屏幕截图通过使用键盘快捷键可以节省时间。 Windows 和 Mac 的键盘快捷键 在现代操作系统中和计算机软件程序中,键盘快捷键经常被使用。 使用键盘快捷键能帮您节省很多时间。 基本的快捷键 描述 Windows Mac OS 编辑菜单 Alt + E Ctrl + F2 + F 文件菜单 Alt + F Ctrl + F2 + E 视图菜单 Alt + V Ctrl + F2 + V 全选文本 Ctr
配置本地和全局键盘快捷键 本地快捷键 您可以使用Menu模块来配置仅在应用程序集中时才触发的键盘快捷键。为此,在创建MenuItem时务必指定[`accelerator]属性。 1 const {Menu, MenuItem} = require('electron') 2 const menu = new Menu() 3 4 menu.append(new MenuItem({ 5 lab
配置本地和全局键盘快捷键 Keyboard Shortcuts Configure local and global keyboard shortcuts 本地快捷键 您可以使用 [Menu] 模块来配置快捷键,只有在 app 处于焦点状态时才可以触发快捷键。 为此,在创建 MenuItem时必须指定一个 [accelerator] 属性。 const { Menu, MenuItem } = r