JavaFX ImageView 控件可以在 JavaFX GUI 中显示图像。ImageView 控件必须添加到场景图中才能可见。JavaFX ImageView 控件由类表示 javafx.scene.image.ImageView。

创建一个 ImageView

通过创建类的实例来创建 ImageView 控件实例ImageView。类的构造函数ImageView需要一个javafx.scene.image.Image 作为参数的实例。Image对象代表控件要显示的图像ImageView 。
这是一个 JavaFX ImageView 实例化示例:

  1. FileInputStream input = new FileInputStream("resources/images/iconmonstr-home-6-48.png");
  2. Image image = new Image(input);
  3. ImageView imageView = new ImageView(image);

首先FileInputStream创建指向要显示的图像的图像文件的 a。
其次,Image创建一个实例,将FileInputStreamas 参数传递给Image构造函数。这样Image类就知道从哪里加载图像文件。
第三个ImageView实例被创建,将Image实例作为参数传递给ImageView构造函数。

将 ImageView 添加到场景图中

要使其ImageViewl可见,您必须将其添加到场景图中。这意味着将其添加到 Scene对象中。由于ImageView不是它的子类,javafx.scene.Parent 因此无法直接添加到场景图中。它必须嵌套在另一个组件中,例如布局组件。
这是一个通过将 JavaFXImageView嵌套在 HBox布局组件中来将其附加到场景图的示例:

  1. import javafx.application.Application;
  2. import javafx.scene.Scene;
  3. import javafx.scene.control.Button;
  4. import javafx.scene.image.Image;
  5. import javafx.scene.image.ImageView;
  6. import javafx.scene.layout.HBox;
  7. import javafx.stage.Stage;
  8. import java.io.FileInputStream;
  9. public class ImageViewExperiments extends Application {
  10. @Override
  11. public void start(Stage primaryStage) throws Exception {
  12. primaryStage.setTitle("ImageView Experiment 1");
  13. FileInputStream input = new FileInputStream("resources/images/iconmonstr-home-6-48.png");
  14. Image image = new Image(input);
  15. ImageView imageView = new ImageView(image);
  16. HBox hbox = new HBox(imageView);
  17. Scene scene = new Scene(hbox, 200, 100);
  18. primaryStage.setScene(scene);
  19. primaryStage.show();
  20. }
  21. public static void main(String[] args) {
  22. Application.launch(args);
  23. }
  24. }

运行上述 JavaFXImageView示例的结果是一个如下所示的应用程序:
JavaFX 图像视图 - 图1

标签和按钮中的 ImageView

ImageView可以在 JavaFXLabel和 Button 中使用 an 。这将导致LabelandButton显示在orImageView中文本的左侧。有关如何执行此操作的信息, 请参阅有关JavaFX 标签JavaFX 按钮的文本。LabelButton