Image javafx-8。如何使用fxml文件配置本地映像的路径
在javaFX应用程序中配置本地映像的路径时遇到一些问题。 我想在我的按钮上使用图标,但它不适用于本地图像,只适用于外部资源。这是我的代码:Image javafx-8。如何使用fxml文件配置本地映像的路径,image,url,javafx,Image,Url,Javafx,在javaFX应用程序中配置本地映像的路径时遇到一些问题。 我想在我的按钮上使用图标,但它不适用于本地图像,只适用于外部资源。这是我的代码: <Button fx:id="magicWangButton" mnemonicParsing="false" onAction="#magicWang" text="Magic wang"> <graphic> <ImageVie
<Button fx:id="magicWangButton" mnemonicParsing="false" onAction="#magicWang" text="Magic wang">
<graphic>
<ImageView fitHeight="20.0" fitWidth="20.0" pickOnBounds="true" preserveRatio="true">
<image>
<!--<Image url="/fxml/img/magic-wang.png" />-->
<Image url="https://i.stack.imgur.com/y1evM.png" />
<!--<Image url="/fxml/img/site-logo.png" />-->
<Image url="img/magic-wang.png"/>
</image>
</ImageView>
</graphic>
</Button>
这根绳子很好:
<Image url="https://i.stack.imgur.com/y1evM.png" />
,但其他人。。。
我的图像位于路径:resources/fxml/img/
位于fxml目录中的所有fxml文件。
我看到了其他问题和答案,但它使用java文件中的配置,但这不是我想要的。您可以通过使用
@
启动属性值来指定相对于fxml的路径,请参阅
您可以通过使用
@
启动属性值来指定相对于fxml的路径,请参阅
诀窍是以“@”开头url并调用
- 相对URL:
- @one24.png:
- @image/two24.png
- @../24.png
- 绝对URL:
- @/four24.png
- @/image/five24.png
- MyComponent.java
- MyComponent.fxml(与MyComponent.java包相同)
- MyComponent.properties(与MyComponent.java包相同)
public MyComponent() {
FXMLLoaders.loadRoot(this);
}
Parent root = FXMLLoaders.load(FxmlSampleApplication.class);
否则:
public MyComponent() {
FXMLLoaders.loadRoot(this);
}
Parent root = FXMLLoaders.load(FxmlSampleApplication.class);
该库可从Maven Central获得:
<dependency>
<groupId>org.drombler.commons</groupId>
<artifactId>drombler-commons-fx-core</artifactId>
<version>0.13</version>
</dependency>
org.drombler.commons
我还写了一篇关于这个实用程序类和命名约定的文章。诀窍是以“@”开头url并调用
- 相对URL:
- @one24.png:
- @image/two24.png
- @../24.png
- 绝对URL:
- @/four24.png
- @/image/five24.png
请注意,我实现了一个实用程序类:
如果您坚持以下命名约定:
- MyComponent.java
- MyComponent.fxml(与MyComponent.java包相同)
- MyComponent.properties(与MyComponent.java包相同)
您可以使用以下代码:
对于基于根目录的FXML文件:
public MyComponent() {
FXMLLoaders.loadRoot(this);
}
Parent root = FXMLLoaders.load(FxmlSampleApplication.class);
否则:
public MyComponent() {
FXMLLoaders.loadRoot(this);
}
Parent root = FXMLLoaders.load(FxmlSampleApplication.class);
该库可从Maven Central获得:
<dependency>
<groupId>org.drombler.commons</groupId>
<artifactId>drombler-commons-fx-core</artifactId>
<version>0.13</version>
</dependency>
org.drombler.commons
我还写了一篇关于这个实用程序类和命名约定的文章