2012-09-17 23 views
1

当我在这样我FXML代码中使用的图像......如何使用FXML中的类路径资源与SceneBuilder保持兼容?

<Image url="@/de/myprj/assets/icons/arrow.png" /> 

...一切都很正常,直到当我要编辑SceneBuilder的FXML文件的时刻。我如何使用SceneBuilder在FXML中使用这些资源?

+1

在SceneBuilder中试试'File - > Import - > Media' –

+0

这是行得通的,但它会导致SceneBuilder使用图像的绝对路径。在我的项目中,我必须在我的类路径中使用另一个库中的资源。 – dajood

回答

3

在场景构建器中或者最好在特定于您的应用的样式表中设置使用CSS的图像要安全得多。

结帐:http://docs.oracle.com/javafx/2/api/javafx/scene/doc-files/cssref.html#imageview

编辑:

创建一个CSS文件,当你启动应用程序加载到场景的css文件。

scene.getStylesheets().add(new File("mycss.css").toURI().toString()); 

在你的CSS文件中添加以下内容:

.the-image { 
    -fx-image: url("theimage.png"); 
} 

确保有一个在同一目录作为您的css文件名为theimage.png文件。在场景构建器中,单击ImageView。在标有“Style Class”的框中,添加字符串the-image。

Voila。

+0

我正在做的是利用'TitledPane'的子结构在右侧的标题中显示图像,因为它是'盒子'。由于我到目前为止对CSS还不是很熟悉,所以我需要知道如何通过CSS实现这一点,以遵循您的建议。 – dajood