В настоящее время я работаю над заданием для университета, в котором мне было поручено разработать систему управления запасами с использованием Java / JavaFX.
Мой рабочий каталог выглядит так:
-src
-assets
-image.png
-GUI
-viewProduct.fxml
-viewProductController.class
Это код в моем представленииProduct.f xml:
<?xml version="1.0" encoding="UTF-8"?>
<?import javafx.scene.control.*?>
<?import javafx.scene.image.*?>
<?import javafx.scene.layout.*?>
<?import javafx.scene.text.*?>
<AnchorPane fx:id="adminPanelPage" maxHeight="-Infinity" maxWidth="-Infinity" minHeight="-Infinity" minWidth="-Infinity" prefHeight="525.0" prefWidth="514.0" style="-fx-background-color: #3f3f3f;" xmlns="http://javafx.com/javafx/10.0.2-internal" xmlns:fx="http://javafx.com/fxml/1" fx:controller="com.banton.GUI.viewProductController">
<children>
<ImageView fx:id="imgProductImage" fitHeight="175.0" fitWidth="175.0" layoutX="31.0" layoutY="37.0" pickOnBounds="true" preserveRatio="true">
<image>
<Image url="@../productIMGs/imageNotFound.png" />
</image>
</ImageView>
<Label layoutX="223.0" layoutY="72.0" text="Product ID: " textFill="WHITE">
<font>
<Font name="System Bold" size="14.0" />
</font></Label>
<Label layoutX="223.0" layoutY="99.0" text="Product Name:" textFill="WHITE">
<font>
<Font name="System Bold" size="14.0" />
</font>
</Label>
<Label layoutX="223.0" layoutY="127.0" text="Product Type:" textFill="WHITE">
<font>
<Font name="System Bold" size="14.0" />
</font>
</Label>
<Label layoutX="223.0" layoutY="155.0" text="Price: " textFill="WHITE">
<font>
<Font name="System Bold" size="14.0" />
</font>
</Label>
<Label layoutX="31.0" layoutY="236.0" text="Product Description:" textFill="WHITE">
<font>
<Font name="System Bold" size="14.0" />
</font>
</Label>
<TextArea fx:id="txtProductDescription" editable="false" layoutX="31.0" layoutY="263.0" prefHeight="71.0" prefWidth="454.0" promptText="This is where the description text will be" style="-fx-background-color: #3f3f3f;" wrapText="true">
<font>
<Font size="13.0" />
</font>
</TextArea>
<ImageView fitHeight="107.0" fitWidth="175.0" layoutX="170.0" layoutY="440.0" pickOnBounds="true" preserveRatio="true">
<image>
<Image url="@../assets/editProduct.png" />
</image>
</ImageView>
<ImageView fitHeight="43.0" fitWidth="59.0" layoutX="442.0" layoutY="16.0" pickOnBounds="true" preserveRatio="true">
<image>
<Image url="@../assets/print.png" />
</image>
</ImageView>
<Label fx:id="txtProductID" layoutX="308.0" layoutY="72.0" prefHeight="20.0" prefWidth="187.0" text="<<product id>>" textFill="WHITE">
<font>
<Font size="14.0" />
</font>
</Label>
<Label fx:id="txtProductName" layoutX="332.0" layoutY="99.0" prefHeight="20.0" prefWidth="166.0" text="<<product name>>" textFill="WHITE">
<font>
<Font size="14.0" />
</font>
</Label>
<Label fx:id="txtProductType" layoutX="325.0" layoutY="127.0" prefHeight="20.0" prefWidth="166.0" text="<<product type>>" textFill="WHITE">
<font>
<Font size="14.0" />
</font>
</Label>
<Label fx:id="txtPrice" layoutX="273.0" layoutY="155.0" prefHeight="20.0" prefWidth="166.0" text="<<Price>>" textFill="WHITE">
<font>
<Font size="14.0" />
</font>
</Label>
<Label layoutX="117.0" layoutY="358.0" text="Total Stock Level:" textFill="WHITE">
<font>
<Font name="System Bold" size="18.0" />
</font>
</Label>
<Label fx:id="txtStockLevel" layoutX="277.0" layoutY="358.0" text="<<Stock Level>>" textFill="WHITE">
<font>
<Font name="System Bold" size="18.0" />
</font>
</Label>
<Label layoutX="113.0" layoutY="385.0" text="Total Stock Value:" textFill="WHITE">
<font>
<Font name="System Bold" size="18.0" />
</font>
</Label>
<Label fx:id="txtStockValue" layoutX="277.0" layoutY="385.0" text="<<Stock Value>>" textFill="WHITE">
<font>
<Font name="System Bold" size="18.0" />
</font>
</Label>
</children>
</AnchorPane>
Однако я пытаюсь изменить изображение (imgProductImage) в зависимости от выбранного элемента, используя следующий код:
Image image = new Image("productIMGs/imageNotFound.png");
imgProductImage.setImage(image);
Тем не менее по какой-то причине я получаю следующую ошибку:
java.lang.IllegalArgumentException: Invalid URL or resource not found
Я пробовал следующее:
- Перемещение файл изображения вокруг каталога проекта - в том числе вне sr c
- с использованием
Image image = new Image(getClass().getResourceAsStream("/assets/IMAGENAME.png"))
- Я даже скопировал точный код от другого студента, чтобы проверить функциональность, которая не работала .
- с использованием
Image image = new Image(getClass().getResource("/assets/IMAGENAME.png"))
Следовательно, я подозреваю, что это может быть проблема IntelliJ?
Одна вещь, которую я заметил, это то, что IntelliJ автоматически показывает «s:» в new Image
, тогда как его говорит «url:»:
«s:» в изображении
У кого-нибудь были подобные проблемы раньше? Любая помощь приветствуется, срок быстро приближается.