2013-04-19 50 views
10

Tôi đã kiểm tra mã này để tạo hộp thoại có hình ảnh.Không thể tải hình ảnh trong 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(); 

Tôi đã đặt tệp hình ảnh vào thư mục /src. Nhưng vì lý do nào đó hình ảnh không được hiển thị. Bạn có thể giúp tôi sửa lỗi của tôi không?

+0

thể trùng lặp của [đâu javafx.scene.image.Image làm ("flower.png") tìm hoa.png?] (http://stackoverflow.com/questions/10575410/whe re-does-javafx-cảnh-hình-ảnh-png-tìm-hoa-png) – jewelsea

+0

Bạn có thấy bất kỳ vấn đề nào trong mã không? –

+0

Đường dẫn không nên là "/src/logo.png" nếu nó nằm trong thư mục src? – Perneel

Trả lời

37

Chỉ cần thay thế mã này:

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

với điều này

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

Hãy thử điều này:

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

Nếu không có phần giao thức cho thấy một URL (như http: hoặc tệp:) được cung cấp, tệp i phải nằm trong gói mặc định. Nếu bạn muốn nó phải đặt trong một gói phần mềm khác nhau nói com.my.images bạn thêm thông tin này trong một con đường như cách:

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

chức năng này:

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

Để tải hình ảnh trong một thư mục tùy ý: – joser

0

sao chép và dán hình ảnh vào thư mục nơi gói nguồn (các gói nguồn trong NetBeans IDE) có mặt. Sau đó,

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

cả hai đều sẽ hoạt động.

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

hoặc chiều với đường dẫn:

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

hoặc

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

cũng có thể sử dụng:

new Image(file:src/logo.png) //root of project 
Các vấn đề liên quan