2014-10-29 5 views
-2

Это простой код для отображения изображения с использованием JavaFX. Однако мое изображение не может загружаться вообще, хотя я выполнил код «Build and Clean».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(); 
} 
+0

Изображение изображения = новое изображение ("/ images/knives.jpg"); –

+0

кроме указания полного пути ex "file: ///home/reegan/temp/serialObservable/trunk/src/main/java/main/2-user-group-icon.png" –

+0

ref http: // stackoverflow. com/questions/10575410/where-do-javafx-scene-image-imageflower-png-look-for-flower-png –

ответ

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); 
    } 

} 

Создать папку изображений в соответствии с СРК. как

[email protected]:~/NetBeansProjects/ImageLoaded/src$ ls 
imageloaded images 
[email protected]:~/NetBeansProjects/ImageLoaded/src/imageloaded$ ls 
ImageLoaded.java 
[email protected]:~/NetBeansProjects/ImageLoaded/src/images$ ls 
Javafx_logo_color.png 

Другие, чем вы использовали в файле:

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

Спасибо за ваш ответ. Однако, похоже, он не работал для меня, w/wo помещал папку с изображениями под src. У меня есть другое приложение, которое отлично работает с папкой с изображениями, не находящейся под src. – ctn

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 = новый ImageView (изображение);

0

В моем конкретном случае, образы были там - в SceneBuilder (я использовал NetBeans 8.2), но приложение при запуске не показывать их. Решение в моем случае? В поле SceneBuilder установите переключатель «Переключиться на абсолютные пути» рядом с расположением изображения.

Смежные вопросы