2013-04-19 13 views
10

Görüntülü iletişim oluşturmak için bu kodu test ettim.Resim yüklenemiyor JavaFX

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

Resim dosyasını /src dizinine yerleştirdim. Ancak bazı nedenlerden dolayı görüntü gösterilmiyor. Hatamı düzeltmeme yardım edebilir misin? Bunu deneyin bu

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

olası yinelenen ("flower.png") flower.png 'yi mi arıyorsunuz?] (http://stackoverflow.com/questions/10575410/whe re-does-javafx-sahne-görüntü-imageflower-png-bakmak-için-png) – jewelsea

+0

Kodda herhangi bir sorun görüyor musunuz? –

+0

Yol, src klasöründe "/src/logo.png" değilse mi? – Perneel

cevap

37

Basitçe bu kodu değiştirin

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

Eğer http olarak bir URL (gösteren hiçbir protokol kısmı: veya dosya:) verilir, i dosyası varsayılan pakette bulunması gerekiyordu.

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

Bu fonksiyonlar:

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

Rasgele bir dizinde görüntü almak için: – joser

0

kopyalama ve klasöre görüntüyü yapıştırmak bunu com.my.images söylemek farklı bir pakette koymak istiyorsanız şekilde gibi bir yolu bu bilgileri eklemek Kaynak paketin (NetBeans IDE'deki kaynak paketleri) bulunduğu yer. Her ikisi de çalışacak

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

.

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

veya yolu yolu:

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

ya da

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

kullanabilirsiniz:

new Image(file:src/logo.png) //root of project 
Nerede javafx.scene.image.Image yapar [ait