JavaFX ImageView
2024-10-09 16:32:46
例子1:显示4个狗头。正常显示左上角、右下角的狗头;右上角的狗头旋转180°,并设置了透明度;左下角的狗头旋转90°,也设置了透明度。
1 import javafx.application.Application;
2 import javafx.geometry.Insets;
3 import javafx.scene.Scene;
4 import javafx.scene.image.Image;
5 import javafx.scene.image.ImageView;
6 import javafx.scene.layout.GridPane;
7 import javafx.stage.Stage;
8
9 public class Main extends Application {
10
11 public static void main(String[] args) {
12 launch(args);
13 }
14
15 @Override
16 public void start(Stage primaryStage) throws Exception {
17
18 // Create a pane to hold the images
19 GridPane pane = new GridPane();
20 pane.setStyle("-fx-border-color: green;");
21 pane.setPadding(new Insets(10));
22 pane.setHgap(10); // The width of the horizontal gaps between columns.
23 pane.setVgap(10); // The height of the vertical gaps between rows.
24
25 // Create a image view to hold a image
26 ImageView ivGamer1 = new ImageView("image/Gamer1.jpg");
27 ivGamer1.setFitWidth(100);
28 ivGamer1.setFitHeight(100);
29 pane.add(ivGamer1, 0, 0); // Add image view to pane
30
31 // Create a image view to hold a image
32 ImageView ivGamer2 = new ImageView("image/Gamer1.jpg");
33 ivGamer2.setFitWidth(100);
34 ivGamer2.setFitHeight(100);
35 ivGamer2.setStyle("-fx-rotate: 180; -fx-opacity: 0.6;");
36 pane.add(ivGamer2, 1, 0);
37
38 // Create a image view to hold a image
39 ImageView ivGamer3 = new ImageView("image/Gamer1.jpg");
40 ivGamer3.setFitWidth(100);
41 ivGamer3.setFitHeight(100);
42 ivGamer3.setStyle("-fx-rotate: 90; -fx-opacity: 0.2;");
43 pane.add(ivGamer3, 0, 1);
44
45 // Create a image view to hold a image
46 Image iGamer4 = new Image("image/Gamer2.jpg");
47 ImageView ivGamer4 = new ImageView(iGamer4);
48 ivGamer4.setFitWidth(100);
49 ivGamer4.setFitHeight(100);
50 pane.add(ivGamer4, 1, 1);
51
52 // Create a scene
53 Scene scene = new Scene(pane);
54
55 primaryStage.setScene(scene);
56 primaryStage.setTitle("Gamers");
57 primaryStage.setResizable(true);
58 primaryStage.show();
59 }
60 }
运行效果:
例子2:以半透明的状态显示两个狗头,当点击其中某一个狗头,就让它变成不透明,另一个保持半透明。当将鼠标移进某一狗头所在的区域,而不点击时,该狗头变成不透明,另一个狗头变成半透明;当鼠标移出该狗头所在的区域,恢复两个狗头原来的状态。
1 import javafx.application.Application;
2 import javafx.event.EventHandler;
3 import javafx.geometry.Insets;
4 import javafx.scene.Scene;
5 import javafx.scene.image.Image;
6 import javafx.scene.image.ImageView;
7 import javafx.scene.input.MouseEvent;
8 import javafx.scene.layout.GridPane;
9 import javafx.stage.Stage;
10
11 public class Main extends Application {
12
13 String opacityOfGamer1 = "-fx-opacity: 0.5;";
14 String opacityOfGamer2 = "-fx-opacity: 0.5;";
15
16 public static void main(String[] args) {
17 launch(args);
18 }
19
20 @Override
21 public void start(Stage primaryStage) throws Exception {
22 // Create a pane to hold the images
23 GridPane pane = new GridPane();
24 pane.setStyle("-fx-border-color: green;");
25 pane.setPadding(new Insets(10));
26 pane.setHgap(10); // The width of the horizontal gaps between columns.
27 pane.setVgap(10); // The height of the vertical gaps between rows.
28
29 // Create a image view to hold a image
30 ImageView ivGamer1 = new ImageView("image/Gamer1.jpg");
31 ivGamer1.setFitWidth(100);
32 ivGamer1.setFitHeight(100);
33 ivGamer1.setStyle("-fx-opacity: 0.5;");
34 pane.add(ivGamer1, 0, 0); // Add image view to pane
35
36 // Create a image view to hold a image
37 Image iGamer2 = new Image("image/Gamer2.jpg");
38 ImageView ivGamer2 = new ImageView(iGamer2);
39 ivGamer2.setFitWidth(100);
40 ivGamer2.setFitHeight(100);
41 ivGamer2.setStyle("-fx-opacity: 0.5;");
42 pane.add(ivGamer2, 1, 0);
43
44
45 ivGamer1.setOnMouseClicked(new EventHandler<MouseEvent>() {
46 @Override
47 public void handle(MouseEvent event) {
48 ivGamer1.setStyle("-fx-opacity: 1;");
49 ivGamer2.setStyle("-fx-opacity: 0.5;");
50 opacityOfGamer1 = ivGamer1.getStyle();
51 opacityOfGamer2 = ivGamer2.getStyle();
52 System.out.println("The opacity of the Gamer 1: " + opacityOfGamer1);
53 System.out.println("The opacity of the Gamer 2: " + opacityOfGamer2);
54 System.out.println();
55 }
56 });
57
58 ivGamer1.setOnMouseEntered(new EventHandler<MouseEvent>() {
59 @Override
60 public void handle(MouseEvent event) {
61 ivGamer1.setStyle("-fx-opacity: 1;");
62 ivGamer2.setStyle("-fx-opacity: 0.5;");
63 }
64 });
65
66 ivGamer1.setOnMouseExited(new EventHandler<MouseEvent>() {
67 @Override
68 public void handle(MouseEvent event) {
69 ivGamer1.setStyle(opacityOfGamer1);
70 ivGamer2.setStyle(opacityOfGamer2);
71 }
72 });
73
74 ivGamer2.setOnMouseClicked(new EventHandler<MouseEvent>() {
75 @Override
76 public void handle(MouseEvent event) {
77 ivGamer1.setStyle("-fx-opacity: 0.5;");
78 ivGamer2.setStyle("-fx-opacity: 1;");
79 opacityOfGamer1 = ivGamer1.getStyle();
80 opacityOfGamer2 = ivGamer2.getStyle();
81 System.out.println("The opacity of the Gamer 1: " + opacityOfGamer1);
82 System.out.println("The opacity of the Gamer 2: " + opacityOfGamer2);
83 System.out.println();
84 }
85 });
86
87 ivGamer2.setOnMouseEntered(new EventHandler<MouseEvent>() {
88 @Override
89 public void handle(MouseEvent event) {
90 ivGamer1.setStyle("-fx-opacity: 0.5;");
91 ivGamer2.setStyle("-fx-opacity: 1;");
92 }
93 });
94
95 ivGamer2.setOnMouseExited(new EventHandler<MouseEvent>() {
96 @Override
97 public void handle(MouseEvent event) {
98 ivGamer1.setStyle(opacityOfGamer1);
99 ivGamer2.setStyle(opacityOfGamer2);
100 }
101 });
102
103
104 // Create a scene
105 Scene scene = new Scene(pane);
106
107 primaryStage.setScene(scene);
108 primaryStage.setTitle("Gamers");
109 primaryStage.setResizable(true);
110 primaryStage.show();
111 }
112 }
运行效果:
最新文章
- [LeetCode] Factor Combinations 因子组合
- dynamic和var的区别
- Linux装无线驱动
- hdu2642二维树状数组单点更新+区间查询
- CCF 模拟C 找最大矩形+输入输出外挂
- LNMP软件安装所在的目录详细
- System.AccessViolationException,尝试读取或写入受保护的内存。这通常指示其他内存已损坏。
- 【POJ1067】取石子游戏 (威佐夫博弈)
- 深入浅出OpenStack云计算平台管理(nova-compute/network)
- JSON的服务器开发之路
- Android 启动优化
- 觉得一篇讲SPFA还不错的文章
- grid - 通过网格线名称设置网格项目位置
- 环境准备—之—linux下安装jdk
- docker的ubuntu镜像无ifconfig和ping netstat命令
- 离线安装.NET 3.5
- spring boot 微服务例子一
- 在myeclipse的工作环境上配置默认编码为UTF-8
- str.format格式化用法(通过{}来替代%)
- Shell 循环中实现展示进度百分比的脚本方法