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

StackOverflow https://stackoverflow.com/questions/21497741

  •  05-10-2022
  •  | 
  •  

Pergunta

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

Foi útil?

Solução

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

Outras dicas

i was using intelliJ and had the exact problem twice, here's how to deal with it:

one time the problem was that the images were not in a package (i.e. there were in src with no package) and as soon as i made a package and moved pictures there , the images were loaded.

the other time the problem was solved by deleting the "out" directory of intelliJ and building the project again.

I have faced two cases for this problem. One is that maybe you don't have your images in a "recources" folder in your "src" directory. Two, if you do, then probably your IDE just has not read it yet. For example if you're using Eclipse, expand your recources folder on File Explorer. If your image is not in there then right click on the folder and select refresh. You should be fine after that.

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top