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

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

  •  05-10-2022
  •  | 
  •  

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

有帮助吗?

解决方案

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

其他提示

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.

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top