ImageView不会在JavaFX中加载图像

时间:2014-10-29 04:59:37

标签: java javafx imageview

这是使用JavaFX显示图像的简单代码。但是,即使我运行了“构建和清理”代码,我的图像根本无法加载。

 public void start(Stage primaryStage){
    Image image = new Image("file: images/knives.jpg");
    System.out.println("Is loaded: " + image.isError());

    //Add image to pane
    HBox pane = new HBox(10);
    pane.getChildren().add(new ImageView(image));

    //Add pane to scene
    Scene scene = new Scene(pane);

    //Add things to stage
    primaryStage.setTitle("Test");
    primaryStage.setScene(scene);
    primaryStage.show();
}

3 个答案:

答案 0 :(得分:0)

package imageloaded;

import javafx.application.Application;
import javafx.scene.Scene;
import javafx.scene.image.Image;
import javafx.scene.image.ImageView;
import javafx.scene.layout.HBox;
import javafx.stage.Stage;

/**
 *
 * @author reegan
 */
public class ImageLoaded extends Application {

    @Override
    public void start(Stage primaryStage) {
        Image image = new Image("/images/Javafx_logo_color.png");
        System.out.println("Is loaded: " + image.isError());

        //Add image to pane
        HBox pane = new HBox(10);
        pane.getChildren().add(new ImageView(image));

        //Add pane to scene
        Scene scene = new Scene(pane);

        //Add things to stage
        primaryStage.setTitle("Test");
        primaryStage.setScene(scene);
        primaryStage.show();
//       
    }

    /**
     * @param args the command line arguments
     */
    public static void main(String[] args) {
        launch(args);
    }

}

在src下创建images文件夹。像

reegan@toad:~/NetBeansProjects/ImageLoaded/src$ ls
imageloaded  images
reegan@toad:~/NetBeansProjects/ImageLoaded/src/imageloaded$ ls
ImageLoaded.java
reegan@toad:~/NetBeansProjects/ImageLoaded/src/images$ ls
Javafx_logo_color.png

除了您在文件中使用的内容之外:

Image image = new Image("file:///home/reegan/NetBeansProjects/ImageLoaded/src/images/Javafx_logo_color.png");

答案 1 :(得分:0)

试试这个:

  1. 使用System.getPropery(" user.dir")获取应用程序位置

  2. 附加图像文件的位置,例如。 image.gif 。假设image.gif在 src / sample / images 里面是包,那么下面的代码应该可以工作。

    String appMain = System.getProperty(" user.dir");

    的System.out.println(appMain);

    图片图片=新图片("文件:" + appMain +" /src/sample/images/image.gif");

    ImageView imageView = new ImageView(image);

答案 2 :(得分:0)

在我的特定情况下,图像在那里 - 在SceneBuilder(我使用NetBeans 8.2),但运行时的应用程序没有显示它们。解决我的情况?在SceneBuilder中,切换"切换到绝对路径"在图片的位置旁边。