基本上,我只想将图像插入网格窗格内的单元格中。
GridPane gridpane = new GridPane();
gridpane.add(new Image("File:image/myfile.jpg"));
getChildren().addAll(gridpane);
总是告诉我"图像是抽象的,无法实例化"。我用谷歌广泛含糊地发现我必须将它用作BufferedImage或其他东西?实际上并没有得到它。我在这里做错了什么?
答案 0 :(得分:7)
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));
答案 1 :(得分:1)
试试这段代码;)
image = new Image("File:image/myfile.jpg");
pic = new ImageView();
pic.setFitWidth(130);
pic.setFitHeight(130);
pic.setImage(image);
gridpane.add(pic);
答案 2 :(得分:0)
图像是一个抽象类,因此无法实现。您应该使用扩展Image的类之一,如BufferedImage
BufferedImage img = null;
try {
img = ImageIO.read(new File("strawberry.jpg"));
} catch (IOException e) {
}
答案 3 :(得分:0)
你可以试试这个。
GridPane pane = new GridPane();
FileInputStream imageStream = new FileInputStream("us.gif");
Image image = new Image(imageStream);
pane.add(new ImageView(image), 0, 0);
答案 4 :(得分:0)
使用此:
ImageView imageView = new ImageView(new Image(getClass().getResourceAsStream("picture.jpg")));