JavaFX:将图像插入GridPane

时间:2016-04-15 16:32:52

标签: java image javafx gridpane

基本上,我只想将图像插入网格窗格内的单元格中。

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

总是告诉我"图像是抽象的,无法实例化"。我用谷歌广泛含糊地发现我必须将它用作BufferedImage或其他东西?实际上并没有得到它。我在这里做错了什么?

5 个答案:

答案 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);

Original Question

答案 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")));