JavaFX如何从SceneBuilder设置ImageView

正如我在SceneBuilder看到的,您可以为ImageView设置图形(尽管如果将项目导出为.jar并且将图像导入jar中,该图像将不起作用)。

1) 我想通过SceneBuilder为一些fxml按钮设置图像,但我找不到任何相关内容。

2)如果你提供有关如何处理.fxml信息,如果你对getClass().getResource("image.png");做什么,它将是有用的.fxml getClass().getResource("image.png"); ,所以我不必手动在java文件上这样做。

编辑:

对于问题1和2, FabianJohn Vernee的答案都是正确的,但我只能选择一个。

资源文件夹的结构:

在此处输入图像描述

在SceneBuilder中,将要使用的graphic节点(在本例中为ImageView )从“ 库”拖动到“ 层次结构”视图中的“ Button ”。 将它放在那里你应该看到graphic节点显示为Button的子节点。

这将导致像这样的fxml

 ...  ... 

通过使用ImageView图像属性旁边的齿轮按钮,您可以通过选择切换到文档相对路径来指定以@开头的图像URL。 输入url @image.png 。 将fxml保存到相对于图像的正确位置将在SceneBuilder中显示图像。

您可以在FXML中设置ImageView的URL,如下所示:

      

它将与图像的FXML文件位于同一文件夹中。


您可以通过从FXML引用它来设置Button的图形:

           

我正在使用apache maven的eclipse插件来构建我的jar,使用javafx-jar-plugin

如果您之前使用过maven,可以在pom.xml使用此插件:

    com.zenjava javafx-maven-plugin 8.5.0  application.MainFXML     

我已将FXML文件和图像放在src/main/resources下的同一文件夹中,因此它们会被包含在jar中。

使用jfx:jar目标运行maven build。