Я работаю над проектом, в котором мне нужно переключаться между несколькими изображениями из указанного каталога c, чтобы использовать его в качестве фона для моей программы. К сожалению, я не могу жестко закодировать все пути к изображениям в f xml в виде URL-адресов и переключаться между ними с помощью fxids, потому что у меня слишком много изображений, и новые изображения добавляются в течение недели. Я создал один fxid, который связан с указанной c переменной, которая содержит путь к изображению. Эта переменная является URL-адресом, который имеет путь "@ .. / images / Planets / image1.png". f xml правильно загружает элементы кнопки, но не может загрузить связанный URL, связанный с данной переменной. Я взял точный URL и поместил его прямо в f xml, который правильно отображал одно изображение. Мне нужна помощь, чтобы переменная url была правильно распознана в f xml. Ниже мой код f xml.
<AnchorPane fx:id="AP" maxHeight="-Infinity" maxWidth="-Infinity" minHeight="-Infinity" minWidth="-Infinity" prefHeight="400.0" prefWidth="600.0" xmlns="http://javafx.com/javafx/11.0.1" xmlns:fx="http://javafx.com/fxml/1" fx:controller="main.java.controllers.PlanetController">
<children>
<fx:define>
<URL fx:id="image"/>
</fx:define>
<ImageView fitHeight="721.0" fitWidth="1289.0">
<image>
<Image url="$image"/>
</image>
</ImageView>
<Button fx:id="map" layoutX="709.0" layoutY="685.0" mnemonicParsing="false" onAction="#handleNext" text="Map" />
<Button layoutX="428.0" layoutY="690.0" mnemonicParsing="false" text="Market" />
</children>
</AnchorPane>
Вот код javafx, который загружает документ f xml. Не обращайте внимания на rootController. Это устанавливает сцену в vBox.
@FXML
private URL image;
@FXML
public void handleTravelToRegion() {
image = new URL("@../images/Planets/image4.jpg");
try {
URL url = this.getClass().getResource(getScene("destinationPlanet"));
FXMLLoader loader = new FXMLLoader(url);
Node scene = loader.load();
rootController.setScene(scene);
} catch (IOException e) {
e.printStackTrace();
}
}
Пожалуйста, помогите мне получить <Image url="$image"/>
для загрузки переменной изображения. Ваша помощь будет принята с благодарностью.