JavaFX Button和Scene点击事件代码示例
2021/7/2 11:22:16
本文主要是介绍JavaFX Button和Scene点击事件代码示例,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!
最终效果 代码写在一个类里面
package cn.zxl.StackPane; import javafx.application.Application; import javafx.event.EventHandler; import javafx.scene.Scene; import javafx.scene.control.Button; import javafx.scene.input.MouseEvent; import javafx.scene.layout.StackPane; import javafx.stage.Stage; /** * @Description: //TODO * @Author: zhangxueliang * @Create: 2021-05-27 09:04 * @Version: 1.0 **/ public class MyStackPane extends Application implements EventHandler<MouseEvent> { Button btn; @Override public void start(Stage primaryStage) throws Exception { btn = new Button("你好"); btn.setOnMouseClicked(this); StackPane stackPane = new StackPane(); stackPane.getChildren().add(btn); Scene scene = new Scene(stackPane, 200, 200); scene.setOnMousePressed(this); primaryStage.setScene(scene); primaryStage.show(); } public static void main(String[] args) { launch(args); } @Override public void handle(MouseEvent event) { if (event.getSource()==btn){ System.out.println("你点击的是按钮"); }else { System.out.println("你点击了场景"); } } }也可以单独提取出事件监听类
按钮事件监听类
package cn.zxl.StackPane; import javafx.event.EventHandler; import javafx.scene.control.Button; import javafx.scene.input.MouseEvent; /** * @Description: //TODO * @Author: zhangxueliang * @Create: 2021-05-27 09:20 * @Version: 1.0 **/ public class MyMouseEvent implements EventHandler<MouseEvent> { @Override public void handle(MouseEvent event) { System.out.println("你点击的是按钮"); } }
场景事件监听类
package cn.zxl.StackPane; import javafx.event.EventHandler; import javafx.scene.input.MouseEvent; /** * @Description: //TODO * @Author: zhangxueliang * @Create: 2021-05-27 09:24 * @Version: 1.0 **/ public class SceneMouseEvent implements EventHandler<MouseEvent> { @Override public void handle(MouseEvent event) { System.out.println("你点击的是场景"); } }
调用
package cn.zxl.StackPane; import javafx.application.Application; import javafx.scene.Scene; import javafx.scene.control.Button; import javafx.scene.layout.StackPane; import javafx.stage.Stage; /** * @Description: //TODO * @Author: zhangxueliang * @Create: 2021-05-27 09:04 * @Version: 1.0 **/ public class MyStackPane2 extends Application{ Button btn; @Override public void start(Stage primaryStage) throws Exception { btn = new Button("你好"); btn.setOnMouseClicked(new MyMouseEvent()); StackPane stackPane = new StackPane(); stackPane.getChildren().add(btn); Scene scene = new Scene(stackPane, 200, 200); scene.setOnMousePressed(new SceneMouseEvent()); primaryStage.setScene(scene); primaryStage.show(); } public static void main(String[] args) { launch(args); } }匿名内部类方式(推荐)
package cn.zxl.StackPane; import javafx.application.Application; import javafx.event.EventHandler; import javafx.scene.Scene; import javafx.scene.control.Button; import javafx.scene.input.MouseEvent; import javafx.scene.layout.StackPane; import javafx.stage.Stage; /** * @Description: //TODO * @Author: zhangxueliang * @Create: 2021-05-27 09:04 * @Version: 1.0 **/ public class MyStackPane3 extends Application{ Button btn; @Override public void start(Stage primaryStage) throws Exception { btn = new Button("你好"); btn.setOnMouseClicked(new EventHandler<MouseEvent>() { @Override public void handle(MouseEvent event) { System.out.println("你点击的是按钮"); } }); StackPane stackPane = new StackPane(); stackPane.getChildren().add(btn); Scene scene = new Scene(stackPane, 200, 200); scene.setOnMousePressed(new EventHandler<MouseEvent>() { @Override public void handle(MouseEvent event) { System.out.println("你点击的是场景"); } }); primaryStage.setScene(scene); primaryStage.show(); } public static void main(String[] args) { launch(args); } }lambda表达式(新手不推荐)
package cn.zxl.StackPane; import javafx.application.Application; import javafx.event.EventHandler; import javafx.scene.Scene; import javafx.scene.control.Button; import javafx.scene.input.MouseEvent; import javafx.scene.layout.StackPane; import javafx.stage.Stage; /** * @Description: //TODO * @Author: zhangxueliang * @Create: 2021-05-27 09:04 * @Version: 1.0 **/ public class MyStackPane4 extends Application{ Button btn; @Override public void start(Stage primaryStage) throws Exception { btn = new Button("你好"); btn.setOnMouseClicked(event -> { System.out.println("你点击的是按钮"); }); StackPane stackPane = new StackPane(); stackPane.getChildren().add(btn); Scene scene = new Scene(stackPane, 200, 200); scene.setOnMousePressed(event -> { System.out.println("你点击的是场景"); }); primaryStage.setScene(scene); primaryStage.show(); } public static void main(String[] args) { launch(args); } }
这篇关于JavaFX Button和Scene点击事件代码示例的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!
- 2024-05-15鸿蒙生态设备数量超8亿台
- 2024-05-13TiDB + ES:转转业财系统亿级数据存储优化实践
- 2024-05-09“2024鸿蒙零基础快速实战-仿抖音App开发(ArkTS版)”实战课程已上线
- 2024-05-09聊聊如何通过arthas-tunnel-server来远程管理所有需要arthas监控的应用
- 2024-05-09log4j2这么配就对了
- 2024-05-09nginx修改Content-Type
- 2024-05-09Redis多数据源,看这篇就够了
- 2024-05-09Google Chrome驱动程序 124.0.6367.62(正式版本)去哪下载?
- 2024-05-09有没有大佬知道这种数据应该怎么抓取呀?
- 2024-05-09这种运行结果里的10.100000001,怎么能最快改成10.1?