如何从 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);
});
}
}
我正在制作图片库。我正在使用 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);
});
}
}