【发布时间】:2016-02-17 17:04:15
【问题描述】:
我正在使用 JavaFX 创建我的第一个应用程序,到目前为止效果很好。
在 FXMLLoader 上,我可以加载 ResourceBundle 文件,但我在 ContextMenu 中找不到任何功能相同的功能
我的工作代码
ResourceBundle bundle = ResourceBundle.getBundle("mymoney/view/linguas/messages");
FXMLLoader loader = new FXMLLoader();
loader.setLocation(getClass()
.getResource(fxmlPath));
loader.setResources(bundle);
我的上下文菜单
ContextMenu contextMenu = new ContextMenu();
MenuItem cut = new MenuItem("%commos.menu.cut");
MenuItem edit = new MenuItem("editar");
MenuItem paste = new MenuItem("Paste");
contextMenu.getItems().addAll(cut, edit, paste);
cut.setOnAction(new EventHandler<ActionEvent>() {
@Override
public void handle(ActionEvent event) {
System.out.println("Cut...");
}
});
谁能给我指路?
【问题讨论】:
-
如果存在这个
.setResouce方法会做什么? -
@fabian 我编辑问题并将代码加载屏幕
-
但是与
ContextMenu有什么联系? -
@Krismorte 您需要通过(至少)回答 fabian 的问题来使您的问题更加清晰。除了您显示的代码实际上没有上下文菜单这一事实之外,上下文菜单是一个包含一堆
MenuItems 的对象,以及一些在屏幕上显示它的机制。如果你打电话给setResource(bundle);,你希望它做什么?这个功能没有明显的意义。 -
并非如此。
%commos.menu.cut看起来您正在尝试使用 FXML 语法在 Java 代码中进行资源解析,这显然不起作用。您根本没有为这段代码提供任何上下文,但您是否正在尝试做MenuItem cut = new MenuItem(bundle.getString("commos.menu.cut"));?显然,这假设无论您在哪里设置ContextMenu都可以访问bundle。