从配置文件将MenuItem加速器加载到FXML中吗?

时间:2018-10-04 21:18:23

标签: javafx config fxml menuitem accelerator

我正在开发一个应用程序,该应用程序现在具有带有加速器的扩展菜单。

我正在寻找一种方法,使用户可以绑定某些功能的键并保存键绑定以供下次启动。

是否可以从配置文件加载FXML文件的MenuItem加速器?

否则,我可能需要分别序列化每个MenuItem函数的映射。

提前感谢您提供任何信息。

1 个答案:

答案 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));