我正在开发一个应用程序,该应用程序现在具有带有加速器的扩展菜单。
我正在寻找一种方法,使用户可以绑定某些功能的键并保存键绑定以供下次启动。
是否可以从配置文件加载FXML文件的MenuItem加速器?
否则,我可能需要分别序列化每个MenuItem函数的映射。
提前感谢您提供任何信息。
答案 0 :(得分:0)
您可以使用KeyCombination.getName()来获得String
加速器的MenuItem
表示形式,并且可以使用KeyCombination.keyCombination(String)从MenuItem
来创建String
加速器表示。参见示例:
KeyCombination accelerator = new KeyCodeCombination(KeyCode.D, KeyCombination.CONTROL_DOWN);
MenuItem menuItem = new MenuItem("Click me");
menuItem.setAccelerator(accelerator);
...
//save accelerator to the config file
String accString = menuItem.getAccelerator().getName();
saveAcceleratorToConfig(accString); // save string to file
...
//load accelerator from the config file
String accString = loadAcceleratorFromConfig(); //load string from file
menuItem.setAccelerator(KeyCombination.keyCombination(accString));