Images imported in scene builder is not getting displayed while executed in netbeans

Deepak Prabhu picture Deepak Prabhu · Feb 1, 2014 · Viewed 10k times · Source

All the functionalities are working fine except this image display. But in Scene builder preview its working fine. Can someone help in this??

Answer

Patrick picture Patrick · Feb 1, 2014

maybe you linked images from outside the projectdirectory, i made a small and simple example, which works quite well.

Put your image into the same package, where you placed your fxml file and link it again in Scene Builder to the new location.

enter image description here

Here's a little code: App.java

package com.example.images;

import javafx.application.Application;
import javafx.fxml.FXMLLoader;
import javafx.scene.Parent;
import javafx.scene.Scene;
import javafx.stage.Stage;

public class App extends Application{

    @Override
    public void start(Stage stage) throws Exception {
        Parent parent = FXMLLoader.load(getClass().getResource("images.fxml"));
        stage.setTitle("Image set in Scene Builder");
        Scene scene = new Scene(parent);
        stage.setScene(scene);
        stage.show();
    }

    public static void main(String[] args) {
        Application.launch(args);
    }
}

And the fxml File:

<?xml version="1.0" encoding="UTF-8"?>

<?import java.lang.*?>
<?import java.util.*?>
<?import javafx.scene.effect.*?>
<?import javafx.scene.image.*?>
<?import javafx.scene.layout.*?>
<?import javafx.scene.paint.*?>

<AnchorPane id="AnchorPane" fx:id="mainPane" maxHeight="-Infinity" maxWidth="-Infinity" minHeight="-Infinity" minWidth="-Infinity" prefHeight="400.0" prefWidth="600.0" xmlns:fx="http://javafx.com/fxml/1" xmlns="http://javafx.com/javafx/2.2" fx:controller="com.example.images.controller.MainController">
  <children>
    <ImageView fitHeight="337.875" fitWidth="540.6" layoutX="14.0" layoutY="14.0" pickOnBounds="true" preserveRatio="true">
      <effect>
        <Lighting surfaceScale="5.0">
          <bumpInput>
            <Shadow />
          </bumpInput>
          <light>
            <javafx.scene.effect.Light.Distant azimuth="-135.0" />
          </light>
        </Lighting>
      </effect>
      <image>
        <Image url="@1.png" backgroundLoading="true" />
      </image>
    </ImageView>
  </children>
</AnchorPane>

Patrick