在imageview JavaFx上显示图像

在imageview JavaFx上显示图像,java,image,netbeans,javafx,imageview,Java,Image,Netbeans,Javafx,Imageview,我有一个.fxml文件,里面有一些空矩形 它是使用netbeans(拖放界面)自动创建的,如何从.java文件发送和显示图像到ImageView id=“2”/ImageView id=“3”等 public void start(Stage stage) throws Exception { Parent root = FXMLLoader.load(getClass().getResource("Carton.fxml")); Scene scene = new Sce

我有一个.fxml文件,里面有一些空矩形


它是使用netbeans(拖放界面)自动创建的,如何从.java文件发送和显示图像到
ImageView id=“2”/ImageView id=“3”

public void start(Stage stage) throws Exception {
    Parent root = FXMLLoader.load(getClass().getResource("Carton.fxml"));

    Scene scene = new Scene(root);


    stage.setScene(scene);
    stage.show();
}
我还有一个controller.java文件,但我不知道如何处理它

public class CartonController implements Initializable {

@FXML
private Label label;

@FXML


@Override
public void initialize(URL url, ResourceBundle rb) {
    // TODO
}    

}

您可以定义一种方法来检索
图像视图

public ImageView findById(AnchorPane root, String id) {
  for (Node child : root.getChildren()) {
    if (child instanceof ImageView && child.getId().equals(id)) {
      return (ImageView)child;
    }
  }
  return null;
}

此方法将迭代根
AnchorPane
的所有直接子级,并检查
ImageView
节点的ID。如果未找到匹配节点,将返回null。从那里,您可以在返回的
ImageView
上使用
setImage
方法,您应该在controller类中执行此操作。有关如何使用控制器的详细信息,请参阅,但简而言之:

ImageView
s上放置
fx:id
(您可以在SceneBuilder中执行此操作):


然后将它们注入控制器,您可以根据需要访问它们:

public class CartonController implements Initializable {

@FXML
private ImageView imageView1 ;

@FXML
private ImageView imageView2 ;

@FXML
private ImageView imageView3 ;

@FXML
private ImageView imageView4 ;    

    @Override
    public void initialize(URL url, ResourceBundle rb) {
        imageView1.setImage(new Image(...));
        // etc...
    }    

}

从你的网站设置图片。嗨!谢谢你的回答,但是我在initialize方法中遇到了一个问题///File File File=new File(“1.jpg”);如果(file.exists()){System.out.println(file.getAbsolutePath());Image Image=new Image(file.toURI().toString());carta1.setImage(Image);}否则{System.out.println(“file not found”);}///我已经找到了,并且我收到一条消息说找不到该文件,图像与其他文件位于同一目录中:/这是一个不同的问题,已经多次解决了。例如: