Hallo,
ich versuche ein erstes kleines Projekt in JavaFX / Intellij zu erstellen.
Mein Problem ist, dass mein Bild nicht angezeigt wird. Sonst wird alles korrekt angezeigt (buttons, labels..).
Dort wo das Bild angezeigt werden soll, kommt ein leeres Feld.
Ich bekomme keine Fehlermeldung, so dass ich nicht weiss wohin
Den Ordner "Src/img" habe ich als resource folder hinzugefügt.
Das Bild befindet sich ebenso in out Ordner.
Kann mir bitte jmd behilflich sein?
Das ist die Main Klasse:
Das ist die Controller Klasse:
und die FXML Datei:
ich versuche ein erstes kleines Projekt in JavaFX / Intellij zu erstellen.
Mein Problem ist, dass mein Bild nicht angezeigt wird. Sonst wird alles korrekt angezeigt (buttons, labels..).
Dort wo das Bild angezeigt werden soll, kommt ein leeres Feld.
Ich bekomme keine Fehlermeldung, so dass ich nicht weiss wohin
Den Ordner "Src/img" habe ich als resource folder hinzugefügt.
Das Bild befindet sich ebenso in out Ordner.
Kann mir bitte jmd behilflich sein?
Das ist die Main Klasse:
Java:
package sample;
import javafx.application.Application;
import javafx.fxml.FXMLLoader;
import javafx.scene.Parent;
import javafx.scene.Scene;
import javafx.stage.Stage;
public class Main extends Application {
@Override
public void start(Stage primaryStage) throws Exception{
Parent root = FXMLLoader.load(getClass().getResource("sample.fxml"));
primaryStage.setTitle("Hello World");
primaryStage.setScene(new Scene(root, 650, 400));
primaryStage.show();
}
public static void main(String[] args) {
launch(args);
}
}
Das ist die Controller Klasse:
Java:
package sample;
import javafx.fxml.FXML;
import javafx.fxml.Initializable;
import javafx.scene.image.Image;
import javafx.scene.image.ImageView;
import java.io.File;
import java.net.URL;
import java.util.ResourceBundle;
public class Controller {
@FXML
public ImageView zdj;
Image img;
public Controller() {
img = new Image(getClass().getResourceAsStream("/img/santa-mailbox.png"));
}
public void displayImage() {
zdj.setImage(img);
}
}
und die FXML Datei:
Java:
<?xml version="1.0" encoding="UTF-8"?>
<?import javafx.scene.control.Button?>
<?import javafx.scene.control.Label?>
<?import javafx.scene.control.PasswordField?>
<?import javafx.scene.control.TextField?>
<?import javafx.scene.image.Image?>
<?import javafx.scene.image.ImageView?>
<?import javafx.scene.layout.AnchorPane?>
<?import javafx.scene.layout.BorderPane?>
<?import javafx.scene.text.Font?>
<BorderPane maxHeight="-Infinity" maxWidth="-Infinity" minHeight="-Infinity" minWidth="-Infinity" prefHeight="400.0" prefWidth="650.0" xmlns="http://javafx.com/javafx/16" xmlns:fx="http://javafx.com/fxml/1" fx:controller="sample.Controller">
<left>
<AnchorPane prefHeight="400.0" prefWidth="281.0" BorderPane.alignment="CENTER">
<children>
<ImageView fitHeight="198.0" fitWidth="141.0" layoutX="82.0" layoutY="80.0" pickOnBounds="true" preserveRatio="true">
<image>
<Image url="@../../src/img/santa-mailbox.png" />
</image>
</ImageView>
</children>
</AnchorPane>
</left>
<right>
<AnchorPane prefHeight="400.0" prefWidth="361.0" BorderPane.alignment="CENTER">
<children>
<Label layoutX="20.0" layoutY="126.0" text="Username">
<font>
<Font name="System Bold" size="15.0" />
</font>
</Label>
<TextField fx:id="username" layoutX="120.0" layoutY="124.0" prefHeight="25.0" prefWidth="197.0" promptText="username" />
<Label layoutX="22.0" layoutY="161.0" text="Password">
<font>
<Font name="System Bold" size="15.0" />
</font>
</Label>
<PasswordField fx:id="password" layoutX="119.0" layoutY="159.0" prefHeight="25.0" prefWidth="199.0" promptText="password" />
<Button fx:id="login" alignment="CENTER" layoutX="22.0" layoutY="264.0" mnemonicParsing="false" prefHeight="32.0" prefWidth="298.0" text="login" textAlignment="CENTER">
<font>
<Font name="System Bold" size="15.0" />
</font>
</Button>
<Button alignment="CENTER" layoutX="22.0" layoutY="308.0" mnemonicParsing="false" prefHeight="32.0" prefWidth="297.0" text="cancel">
<font>
<Font name="System Bold" size="15.0" />
</font>
</Button>
<Label layoutX="30.0" layoutY="49.0" prefHeight="36.0" prefWidth="281.0" text="Hello Santa, please login..." textFill="#c4302e">
<font>
<Font name="System Bold" size="21.0" />
</font>
</Label>
<Label layoutX="74.0" layoutY="218.0" text="invalid login, please try again" textFill="#f40303">
<font>
<Font name="System Bold" size="14.0" />
</font>
</Label>
</children>
</AnchorPane>
</right>
</BorderPane>