it-swarm.com.de

Image kann nicht in JavaFX geladen werden

Ich habe diesen Code getestet, um einen Dialog mit dem Bild zu erstellen.

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

Ich habe die Bilddatei im Verzeichnis /src..__ abgelegt, aber aus irgendeinem Grund wird das Bild nicht angezeigt. Kannst du mir helfen, meinen Fehler zu korrigieren?

11
Peter Penzov

Ersetzen Sie einfach diesen Code:

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

mit diesem

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

Versuche dies:

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

Wenn kein Protokollteil angegeben wird, der eine URL angibt (als http: oder file: ), sollte sich die Datei im Standardpaket befinden. Wenn Sie möchten, dass es in ein anderes Paket eingefügt wird, sagen Sie com.my.images, fügen Sie diese Informationen auf eine Art und Weise hinzu:

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

oder Weg mit Pfad:

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

oder

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

kann auch verwenden:

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

Das funktioniert:

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

kopieren Sie das Bild und fügen Sie es in den Ordner ein, in dem das Quellpaket (Quellpakete in NetBeans IDE) vorhanden ist. Dann 

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

beide werden funktionieren.

0
Sukhraj