JavaFX:将图像插入 GridPane
JavaFX: Inserting image into a GridPane
基本上,我只想将图像插入到网格窗格中的单元格中。
GridPane gridpane = new GridPane();
gridpane.add(new Image("File:image/myfile.jpg"));
getChildren().addAll(gridpane);
总是告诉我"Image is abstract, cannot be instantiated"。我用谷歌搜索了相当广泛的内容,模糊地发现我必须将其用作 BufferedImage 或其他东西?虽然没有真正得到它。我在这里做错了什么?
试试这个代码 ;)
image = new Image("File:image/myfile.jpg");
pic = new ImageView();
pic.setFitWidth(130);
pic.setFitHeight(130);
pic.setImage(image);
gridpane.add(pic);
Original Question
图像是抽象的class,因此无法实例化。您应该使用扩展图像的 class 之一,例如 BufferedImage
BufferedImage img = null;
try {
img = ImageIO.read(new File("strawberry.jpg"));
} catch (IOException e) {
}
看来您对 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));
你可以试试这个。
GridPane pane = new GridPane();
FileInputStream imageStream = new FileInputStream("us.gif");
Image image = new Image(imageStream);
pane.add(new ImageView(image), 0, 0);
使用这个:
ImageView imageView = new ImageView(new Image(getClass().getResourceAsStream("picture.jpg")));
基本上,我只想将图像插入到网格窗格中的单元格中。
GridPane gridpane = new GridPane();
gridpane.add(new Image("File:image/myfile.jpg"));
getChildren().addAll(gridpane);
总是告诉我"Image is abstract, cannot be instantiated"。我用谷歌搜索了相当广泛的内容,模糊地发现我必须将其用作 BufferedImage 或其他东西?虽然没有真正得到它。我在这里做错了什么?
试试这个代码 ;)
image = new Image("File:image/myfile.jpg");
pic = new ImageView();
pic.setFitWidth(130);
pic.setFitHeight(130);
pic.setImage(image);
gridpane.add(pic);
Original Question
图像是抽象的class,因此无法实例化。您应该使用扩展图像的 class 之一,例如 BufferedImage
BufferedImage img = null;
try {
img = ImageIO.read(new File("strawberry.jpg"));
} catch (IOException e) {
}
看来您对 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));
你可以试试这个。
GridPane pane = new GridPane();
FileInputStream imageStream = new FileInputStream("us.gif");
Image image = new Image(imageStream);
pane.add(new ImageView(image), 0, 0);
使用这个:
ImageView imageView = new ImageView(new Image(getClass().getResourceAsStream("picture.jpg")));