web-dev-qa-db-fra.com

Impossible de charger l'image dans JavaFX

J'ai testé ce code afin de créer un dialogue avec l'image.

final int xSize = 400;
final int ySize = 280;
final Color backgroundColor = Color.WHITE;
final String text = "SQL Browser";
final String version = "Product Version: 1.0";

final Stage aboutDialog = new Stage();
aboutDialog.initModality(Modality.WINDOW_MODAL);

Button closeButton = new Button("Close");

closeButton.setOnAction(new EventHandler<ActionEvent>() {
    @Override
    public void handle(ActionEvent arg0) {
        aboutDialog.close();
    }
});

GridPane grid = new GridPane();
grid.setAlignment(Pos.CENTER);
grid.setHgap(10);
grid.setVgap(10);
grid.setPadding(new Insets(25, 25, 25, 25));

Image img = new Image("logo.png");
ImageView imgView = new ImageView(img);

grid.add(imgView, 0, 0);

grid.add(new Text(text), 0, 1);
grid.add(new Text(version), 0, 2);
grid.add(closeButton, 14, 18);

Scene aboutDialogScene = new Scene(grid, xSize, ySize, backgroundColor);
aboutDialog.setScene(aboutDialogScene);
aboutDialog.show();

J'ai placé le fichier image dans le répertoire /src. Mais pour une raison quelconque, l'image ne s'affiche pas. Pouvez-vous m'aider à corriger mon erreur?

11
Peter Penzov

Remplacez simplement ce code:

Image img = new Image("logo.png");

avec ça

Image img = new Image("file:logo.png");
40
Kalaschni

Essaye ça:

img = new Image("/logo.png");

Si aucune partie de protocole indiquant une URL (sous la forme http: ou file:) n'est indiquée, le fichier est censé résider dans le package par défaut. Si vous voulez le mettre dans un paquet différent, dites com.my.images, ajoutez cette information de la manière suivante:

img = new Image("/com/my/images/logo.png");
16
user1558628
Image img = new Image("file:/logo.png");

ou chemin avec chemin:

Image img = new Image("file:c:/logo.png");

ou

File f = new File("c:\\logo.png");
Image img = new Image(f.toURI().toString());

peut également utiliser:

new Image(file:src/logo.png) //root of project
7
Alexander Cyberman

Cela fonctionne:

Image image  = new Image(getClass()
        .getResourceAsStream("ChimpHumanHand.jpg"));
4
joser

copiez et collez l'image dans le dossier contenant le package source (packages source dans l'EDI NetBeans). ensuite 

Image image = new Image("a1.jpg");
Image image = new Image("File:a1.jpg");

les deux vont travailler.

0
Sukhraj