JavaFX ImageView

时间:2020-01-09 10:36:38  来源:igfitidea点击:

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

创建一个ImageView

我们可以通过创建ImageView类的实例来创建ImageView控件实例。 ImageView类的构造函数需要javafx.scene.image.Image的实例作为参数。 " Image"对象表示要由" ImageView"控件显示的图像。

这是一个JavaFX ImageView实例化示例:

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

首先创建一个" FileInputStream",它指向要显示的图像的图像文件。

其次,创建一个Image实例,将FileInputStream作为参数传递给Image构造函数。这样,Image类便知道从何处加载图像文件。

第三,创建一个" ImageView"实例,将" Image"实例作为参数传递给" ImageView"构造函数。

将ImageView添加到场景图

要使" ImageViewl"可见,必须将其添加到场景图中。这意味着将其添加到"场景"对象中。由于ImageView不是javafx.scene.Parent的子类,因此无法将其直接添加到场景grahp中。它必须嵌套在另一个组件(例如布局组件)中。

这是一个通过将JavaFXImageView嵌套到HBox布局组件中来将JavaFXImageView`添加到场景图的示例:

package com.Hyman.javafx.controls;

import javafx.application.Application;
import javafx.scene.Scene;
import javafx.scene.control.Button;
import javafx.scene.image.Image;
import javafx.scene.image.ImageView;
import javafx.scene.layout.HBox;
import javafx.stage.Stage;

import java.io.FileInputStream;

public class ImageViewExperiments extends Application  {

    @Override
    public void start(Stage primaryStage) throws Exception {
        primaryStage.setTitle("ImageView Experiment 1");

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

        HBox hbox = new HBox(imageView);

        Scene scene = new Scene(hbox, 200, 100);
        primaryStage.setScene(scene);
        primaryStage.show();

    }

    public static void main(String[] args) {
        Application.launch(args);
    }

}

运行上面的JavaFXImageView示例的结果是一个看起来像这样的应用程序:

标签和按钮中的ImageView

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