2016-04-15 170 views
0

基本上,我只想將圖像插入到一個網格內的單元格中。JavaFX:將圖像插入GridPane

 GridPane gridpane = new GridPane(); 
     gridpane.add(new Image("File:image/myfile.jpg")); 
     getChildren().addAll(gridpane); 

總是告訴我「圖像是抽象的,不能實例化」。我已經谷歌搜索了很大程度上模糊地發現,我必須使用這個作爲BufferedImage什麼的?實際上並沒有得到它。我在這裏做錯了什麼?

回答

6

看來你有Image錯誤的進口(你可能有java.awt.Image)。你需要一個JavaFX圖像進口是

import javafx.scene.image.Image ; 

然後你需要包裝的圖像中的ImageView,並添加ImageView到網格窗格:

GridPane gridpane = new GridPane(); 
Image image = new Image("File:image/myfile.jpg") 
gridpane.getChildren().add(new ImageView(image)); 
+0

這讓我有點進一步(我確實有錯誤的導入),但現在它告訴我有一個錯誤,最後一行「沒有合適的方法添加(ImageView)」。 是否有另一個importI需要使ImageView工作? – BEASTthisIndustry

+0

對不起,我的壞。更新它。 –

+0

真棒,那照顧它。它最終編譯。現在我怎樣才能將它分配給某個行/列?我已經看到: gridpane.getChildren()。add(new ImageView(image),1,1); 不起作用。 – BEASTthisIndustry

1

嘗試此代碼;)

image = new Image("File:image/myfile.jpg"); 
pic = new ImageView(); 
pic.setFitWidth(130); 
pic.setFitHeight(130); 
pic.setImage(image); 
gridpane.add(pic); 

Original Question

0

圖片是一個抽象類,因此不能instancied。你應該用誰擴展圖像之類的一個,像BufferedImage的

BufferedImage img = null; 
try { 
    img = ImageIO.read(new File("strawberry.jpg")); 
} catch (IOException e) { 
} 
+4

這是一個JavaFX問題;如果操作系統詢問Swing/AWT圖像,這個答案是適當的。 –

0

你可以試試這個。

GridPane pane = new GridPane(); 
FileInputStream imageStream = new FileInputStream("us.gif"); 
Image image = new Image(imageStream); 
pane.add(new ImageView(image), 0, 0);