如何从 javafx 的图片库中选择图片?

How to have selectable images from image gallery in javafx?

我正在制作图片库。我正在使用 javafx 8 以及用于 GUI 的场景生成器。我希望用户可以选择从图库中选择图像:我希望在图库中有可点击和可选择的图像。我还想记下这些所选图像的顺序,即先选择哪一个,最后选择哪一个。我已经制作了图库,但我想知道如何使图像可点击并选择图像,注意它们的顺序?我不想对图像使用复选框。

您可以在每个 ImageView 上添加一个 setOnMouseClicked 处理程序。

这是我的意思的代码示例:

public class ClickableImage extends Application {

    private ArrayList<String> clickedImages = new ArrayList<>();

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

    @Override
    public void start(Stage primaryStage) {     
        String imgUrl = getClass().getResource("image.png").toExternalForm();
        assert imgUrl != null;
        Image img = new Image(imgUrl);
        assert img != null;

        BorderPane root = new BorderPane();
        ImageView imgView = new ImageView(img);
        imgView.setUserData(imgUrl);
        root.setCenter(imgView);

        Scene scene = new Scene(root, 600, 400);

        primaryStage.setScene(scene);
        primaryStage.setTitle("ClickableImage");
        primaryStage.show();

        //-------------

        imgView.setOnMouseClicked(e -> {
            String clickedImgUrl = (String)((ImageView)e.getSource()).getUserData();
            System.out.println("Image was clicked: " + clickedImgUrl);
            clickedImages.add(clickedImgUrl);
        });                
    }
}