【问题标题】:JavaFX: Inserting image into a GridPaneJavaFX:将图像插入 GridPane
【发布时间】:2016-08-07 17:45:18
【问题描述】:

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

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

总是告诉我“图像是抽象的,无法实例化”。我在谷歌上搜索了相当广泛的内容,发现我必须将其用作 BufferedImage 或其他东西?但实际上并没有得到它。我在这里做错了什么?

【问题讨论】:

    标签: java image javafx gridpane


    【解决方案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】:

      Image 是一个抽象类,因此无法实例化。您应该使用扩展 Image 的类之一,例如 BufferedImage

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

      【讨论】:

      • 这是一个 JavaFX 问题;如果 OP 询问 Swing/AWT 图像,这个答案将是合适的。
      【解决方案3】:

      看来您对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));
      

      【讨论】:

      • 这让我更进一步(我确实有错误的导入),但现在它告诉我最后一行“没有合适的 add(ImageView) 方法”有错误。是否需要其他导入才能使 ImageView 正常工作?
      • 对不起,我的错。更新了。
      • 太棒了,解决了这个问题。它终于编译了。现在如何将其分配给某个行/列?我已经看到了:gridpane.getChildren().add(new ImageView(image),1,1);没用。
      • docs
      • SetRowIndex 和 SetColumnIndex 为我解决了问题。非常感谢。
      【解决方案4】:

      你可以试试这个。

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

      【讨论】:

        【解决方案5】:

        使用这个:

        ImageView imageView = new ImageView(new Image(getClass().getResourceAsStream("picture.jpg")));
        

        【讨论】:

          猜你喜欢
          • 2016-03-02
          • 1970-01-01
          • 1970-01-01
          • 2020-08-20
          • 1970-01-01
          • 2014-05-01
          • 2014-05-15
          • 2021-05-04
          • 2021-11-19
          相关资源
          最近更新 更多