JavaFX - 工具栏按钮上消失的图标

时间:2014-12-15 10:17:24

标签: java javafx javafx-8

我正在JDK 8上编写JavaFX应用程序。该应用程序有一个带有一些按钮的菜单和工具栏。问题是,当菜单打开并覆盖工具栏按钮时,收费栏按钮上的图标会消失。按钮功能保持不变,工具提示正确显示,仅缺少图标。下面的图像显示了这个:

enter image description here

我在UI线程上创建了工具栏按钮,但是将它们添加到UI线程的工具栏上。

 // this is off UI thread
 newFileButton = new Button();
 newFileButton.setId(JFXFileMenuConstants.NEW_FILE_TOOLBAR_BUTTON);
 newFileButton.setGraphic((Node) handler.getResource("jfx.gui.file.new.menuitem.icon"));
    newFileButton.setTooltip(new Tooltip(handler.getString("jfx.gui.toolbar.newfile.tooltip")));
 .........
   ToolBar filesToolbar = new ToolBar(newFileButton, openFileButton, separator, saveFileButton, saveasFileButton);

  Platform.runLater(() -> {
        toolbarContainer.getChildren().add(toolbar);
    });

知道可能导致这种情况的原因吗?

1 个答案:

答案 0 :(得分:1)

嗯,回答我自己的问题,问题出在资源加载上。我将图标加载为ImageView,而不是Image。在资源包中,我有

 {"jfx.gui.file.new.menuitem.icon", new ImageView(this.getClass().getClassLoader().getResource("/icons/filenew.png").toString()) },

当我将其更改为

 {"jfx.gui.file.new.menuitem.icon", new Image(this.getClass().getClassLoader().getResource("/icons/filenew.png").toString()) },

和这一行:

newFileButton.setGraphic((Node) handler.getResource("jfx.gui.file.new.menuitem.icon"));

newFileButton.setGraphic(new ImageView((Image)handler.getResource("jfx.gui.file.new.menuitem.icon")));
一切顺利。 非常感谢大家的建议。