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

标签 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);
    });

知道是什么原因造成的吗?

最佳答案

好吧,回答我自己的问题,问题出在资源加载上。我将图标加载为 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")));

一切顺利。 非常感谢大家的建议。

关于JavaFX - 工具栏按钮上消失的图标,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27481773/

相关文章:

java - 如何学习用 Java 设计应用程序

java - 如何删除JavaFX工具栏中分隔符后的多余空格?

javafx - 如何将Google服务与JavaFX多人游戏结合起来?

encoding - 警报标题中出现奇怪的字符,可能是编码问题?

java - 如何使用 JavaFXPorts 在 Android 中启用 JavaFX 虚拟键盘

java - 如何使用自定义 TypefaceSpan 类更改字体大小

java - 按字母顺序对数组排序的问题

java - hadoop java : how to know that end of reducer input is reached?

使用 Maven 的 JavaFX 11 抛出异常 : "WindowsNativeRunloopThread"

svg - 在 JavaFX 上的按钮中加载 SVG 文件