2013-04-19 15 views
10

Ich habe diesen Code getestet, um Dialog mit Bild zu erstellen.Bild kann nicht in JavaFX geladen werden

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 legte die Image-Datei in das Verzeichnis /src. Aber aus irgendeinem Grund wird das Bild nicht angezeigt. Kannst du mir helfen, meinen Fehler zu korrigieren?

+0

möglich Duplikat [Wo tut javafx.scene.image.Image ("flower.png") suche flower.png?] (http://stackoverflow.com/questions/10575410/whe re-does-javafx-szene-bild-bildblume-png-look-for-flower-png) – jewelsea

+0

Sehen Sie irgendwelche Probleme in den Code? –

+0

Sollte der Pfad nicht "/src/logo.png" lauten, wenn er sich im Ordner "src" befindet? – Perneel

Antwort

37

einfach diesen Code ersetzen:

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

mit diesem

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

starten:

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

Wenn kein Protokollteil eine URL angibt (wie http: oder Datei:) ist gegeben, die Datei i s soll sich im Standardpaket befinden. Wenn Sie es in einem anderen Paket setzen wollen com.my.images sagen Sie diese Informationen in einem Pfad wie Weise hinzufügen:

img = new Image("/com/my/images/logo.png"); 
3

Diese Funktionen:

Image image = new Image(getClass() 
     .getResourceAsStream("ChimpHumanHand.jpg")); 
+0

Um ein Bild in ein beliebiges Verzeichnis zu bekommen: – joser

0

Kopieren und Einfügen das Bild in den Ordner wo das Quellpaket (Quellpakete in der NetBeans IDE) vorhanden ist. Dann

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

werden beide funktionieren.

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

oder Art und Weise 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()); 

können auch verwendet werden:

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