单击actionEvent时,是否希望输入键java fx的相同操作

单击actionEvent时,是否希望输入键java fx的相同操作,java,eclipse,javafx,javafx-2,Java,Eclipse,Javafx,Javafx 2,我是javafx新手,当鼠标单击登录按钮时使用action属性,我希望在按下enter键时使用相同的代码,除了复制相同的代码外,还有其他更有效的方法吗。以下是我的javafx登录控制器中的代码: @FXML private void handleButtonAction(ActionEvent event) throws IOException { System.out.println("Login button selected"); /*

我是javafx新手,当鼠标单击登录按钮时使用action属性,我希望在按下enter键时使用相同的代码,除了复制相同的代码外,还有其他更有效的方法吗。以下是我的javafx登录控制器中的代码:

@FXML
    private void handleButtonAction(ActionEvent event) throws IOException {
        System.out.println("Login button selected");

        /*
         * All Exceptions caught at the GUI not at the other two layers.
         */
        try {
            /*
             * Reference 'bal' to Object BusinessAccessLogin sends parameters to Business Layer
             * calling method login() which passes the TextBox parameters usernameBox and
             * passwordBox down the layers.
             */
            if (bal.login(usernameBox, passwordBox) && (count > 0)) {

                /*
                 * Switch statement so that: user cat 1 -> Reception screen;
                 * user cat 2 'Nurses' -> triage screen ; & user cat 3 'Doctors -> treatment room 
                 */
                switch(bal.staffAccess(usernameBox, passwordBox)){
                case 1:
                    System.out.println("Staff Category ONE");
                    homePageParent = FXMLLoader.load(getClass().getResource("/views/FXMLReceptionistPage.fxml"));
                    homePageScene = new Scene(homePageParent);
                    appStage = (Stage) ((Node) event.getSource()).getScene().getWindow();
                    break;
                case 2:
                    System.out.println("Staff Category TWO");
                    homePageParent = FXMLLoader.load(getClass().getResource("/views/FXMLTriageNurseHomePage.fxml"));
                    homePageScene = new Scene(homePageParent);
                    appStage = (Stage) ((Node) event.getSource()).getScene().getWindow();
                    break;
                case 3:
                    System.out.println("Staff Category THREE");
                    homePageParent = FXMLLoader.load(getClass().getResource("/views/FXMLDoctorAssessmentPage.fxml"));
                    homePageScene = new Scene(homePageParent);
                    appStage = (Stage) ((Node) event.getSource()).getScene().getWindow();
                    break;
                case 4:
                    System.out.println("Staff Category FOUR");
                    homePageParent = FXMLLoader.load(getClass().getResource("/views/FXMLHospitalManagerPage.fxml"));
                    homePageScene = new Scene(homePageParent);
                    appStage = (Stage) ((Node) event.getSource()).getScene().getWindow();
                    break;
                }

                appStage.setScene(homePageScene);
                appStage.show();
                appStage.centerOnScreen();
                appStage.setMaximized(true);

            } else {
                usernameBox.clear();
                passwordBox.clear();
                --count;
                invalidLabel.setText("Sorry, invalid details");

                if (count < 1) {
                    invalidLabel.setText("You have been locked out of system");
                    appStage.close();

                }
                attemptLabel.setText("ATTEMPTS LEFT : " + count);
                System.out.println("ATTEMPTS LEFT : " + count);
            }

        } catch (SQLException e) {
            // TODO Auto-generated catch block
            System.out.println(e.getMessage());
        } catch (Exception e){
            System.out.println(e.getMessage());
            e.printStackTrace();
        }
    } 
@FXML
私有void handleButtonAction(ActionEvent事件)引发IOException{
System.out.println(“选择登录按钮”);
/*
*所有异常都是在GUI上捕获的,而不是在其他两层。
*/
试一试{
/*
*引用对象BusinessAccessLogin的“bal”将参数发送到业务层
*调用方法login(),该方法传递文本框参数usernameBox和
*将密码箱放在各层下面。
*/
if(余额登录(用户名框、密码框)&&(计数>0)){
/*
*切换语句以便:用户cat 1->接收屏幕;
*用户类别2“护士”->分诊屏幕;;用户类别3“医生”->治疗室
*/
交换机(bal.staffAccess(用户名框、密码框)){
案例1:
System.out.println(“一类员工”);
homePageParent=FXMLLoader.load(getClass().getResource(“/views/fxmlReceptionatorPage.fxml”);
homePageScene=新场景(homePageParent);
appStage=(Stage)((节点)event.getSource()).getScene().getWindow();
打破
案例2:
System.out.println(“第二类员工”);
homePageParent=FXMLLoader.load(getClass().getResource(“/views/FXMLTriageNurseHomePage.fxml”);
homePageScene=新场景(homePageParent);
appStage=(Stage)((节点)event.getSource()).getScene().getWindow();
打破
案例3:
System.out.println(“第三类员工”);
homePageParent=FXMLLoader.load(getClass().getResource(“/views/FXMLDoctorAssessmentPage.fxml”);
homePageScene=新场景(homePageParent);
appStage=(Stage)((节点)event.getSource()).getScene().getWindow();
打破
案例4:
System.out.println(“四类员工”);
homePageParent=FXMLLoader.load(getClass().getResource(“/views/FXMLHospitalManagerPage.fxml”);
homePageScene=新场景(homePageParent);
appStage=(Stage)((节点)event.getSource()).getScene().getWindow();
打破
}
appStage.setScene(主页场景);
appStage.show();
appStage.centerOnScreen();
appStage.setMaximized(真);
}否则{
usernameBox.clear();
passwordBox.clear();
--计数;
invalidLabel.setText(“对不起,无效的详细信息”);
如果(计数<1){
invalidLabel.setText(“您已被锁定在系统之外”);
appStage.close();
}
setText(“左尝试次数:+count”);
System.out.println(“左尝试次数:+count”);
}
}捕获(SQLE异常){
//TODO自动生成的捕捉块
System.out.println(e.getMessage());
}捕获(例外e){
System.out.println(e.getMessage());
e、 printStackTrace();
}
} 

这是我希望在按下enter键时调用的代码。任何帮助都将不胜感激

问题有点不清楚,但我猜你想要的是方法

默认按钮是接收键盘VK_ENTER的按钮 如果场景中没有其他节点使用它,请按