JavaFx--实现响应鼠标事件拖动窗体

public class DragWindowHandler implements EventHandler<MouseEvent> {

        private Stage primaryStage;        //primaryStage为start方法头中的Stage
        private double oldStageX;
        private double oldStageY;
        private double oldScreenX;
        private double oldScreenY;

        public DragWindowHandler(Stage primaryStage) {        //构造器
            this.primaryStage = primaryStage;
        }

        @Override
        public void handle(MouseEvent e) {
            if (e.getEventType() == MouseEvent.MOUSE_PRESSED) {    //鼠标按下的事件    
                this.oldStageX = this.primaryStage.getX();
                this.oldStageY = this.primaryStage.getY();
                this.oldScreenX = e.getScreenX();
                this.oldScreenY = e.getScreenY();

            } else if (e.getEventType() == MouseEvent.MOUSE_DRAGGED) {  //鼠标拖动的事件
                this.primaryStage.setX(e.getScreenX() - this.oldScreenX + this.oldStageX);
                this.primaryStage.setY(e.getScreenY() - this.oldScreenY + this.oldStageY);
            }
        }
    }
EventHandler handler = new DragWindowHandler(this.primaryStage);        //primaryStage为start方法中的局部b
this.setOnMousePressed(handler);    //如果去掉这一行代码将会使鼠标进入面板时面板左上角会定位到鼠标的位置
this.setOnMouseDragged(handler);


`SpringBoot-JavaFX-Support` 是一个整合了 Spring Boot 和 JavaFX 的库,它可以帮助你在基于 Spring Boot 的项目中轻松地集成 JavaFX 用户界面。如果你想实现一个登录页面,可以按照以下步骤操作: 1. **添加依赖**: 在你的 `pom.xml` 或者 `build.gradle` 文件中添加 JavaFX 和 SpringBoot-JavaFX-Support 的依赖。例如,如果你使用 Maven: ```xml <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-javafx</artifactId> </dependency> ``` 2. **创建登录视图**: 创建一个新的 JavaFX FXML 文件(如 `Login.fxml`),设计你的登录表单,包括用户名输入框、密码输入框以及登录按钮等。 3. **编写控制器**: 创建对应的 Java 控制器类(如 `LoginController.java`),继承自 `javafx.fxml.FXMLLoader.load()` 方法返回的 `Scene` 的根节点控制器。在这个类里,你可以处理用户输入验证、登录逻辑等。 4. **整合到 Spring Boot**: 使用 Spring Boot 的 @Autowired 注解注入必要的 Spring Bean,比如 Security 或 Authentication Manager。然后,在登录事件处理器中调用这些服务来进行实际的身份验证。 5. **启动主应用**: 确保你的 Spring Boot 主 Application 类配置了支持 Web 或 UI 模式。在主类上添加 `@EnableWebMvc` 或 `@SpringBootApplication(jfx = true)` 标签。 6. **运行和测试**: 运行你的应用程序,打开浏览器访问登录页面,或者通过 JavaFX 应用程序启动器直接运行到登录界面。 ```java // 示例 LoginController 类 @Controller public class LoginController { private TextField usernameField; private PasswordField passwordField; // getters and setters public void handleLogin(ActionEvent event) { String username = usernameField.getText(); String password = passwordField.getText(); if (validateCredentials(username, password)) { loginService.login(username, password); } else { showError("Invalid credentials"); } } // ...其他逻辑... } ```
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值