运行 单击并按回车键时功能相同
Run same function when clicking and pressing enter key
我有点击按钮时 运行 的这个功能,但我想 运行 按 enter 时的相同功能。我应该怎么做?
@FXML
public void login(ActionEvent event) throws IOException {
if(txtUName.getText().equals("jesse") && txtPass.getText().equals("essej")){
Parent home;
try {
home = FXMLLoader.load(getClass().getResource("Home.fxml"));
Scene homeScene = new Scene(home);
Stage window = (Stage)((Node)event.getSource()).getScene().getWindow();
window.setScene(homeScene);
window.show();
} catch (IOException e1) {
// TODO Auto-generated catch block
e1.printStackTrace();
}
}else {
lblError.setVisible(true);
}
}
您需要一个按键事件,然后应检查此事件是否已推送 "enter"。
Detecting when user presses enter in Java
你的意思是你有另一个 @FXML 函数想要做同样的事情?只需将您的逻辑放在一个单独的函数中,然后从您的事件函数中调用它。
@FXML
public void buttonPressed(MouseEvent event) {
doSomething(event);
}
@FXML
public void keyPressed(KeyEvent event) {
doSomething(event);
}
private void doSomething(InputEvent event) {
// your code here
}
此KeyEvent 和MouseEvent 继承自InputEvent。您仍然可以调用 .getSource()
,因为它是继承的,并且在您显示的代码中,您对事件没有做任何更具体的事情。
我找到了适合我的解决方案。
您可以在 Scene Builder 中将该按钮设置为默认按钮,这样当您按下回车键时它也会激活该方法。
我有点击按钮时 运行 的这个功能,但我想 运行 按 enter 时的相同功能。我应该怎么做?
@FXML
public void login(ActionEvent event) throws IOException {
if(txtUName.getText().equals("jesse") && txtPass.getText().equals("essej")){
Parent home;
try {
home = FXMLLoader.load(getClass().getResource("Home.fxml"));
Scene homeScene = new Scene(home);
Stage window = (Stage)((Node)event.getSource()).getScene().getWindow();
window.setScene(homeScene);
window.show();
} catch (IOException e1) {
// TODO Auto-generated catch block
e1.printStackTrace();
}
}else {
lblError.setVisible(true);
}
}
您需要一个按键事件,然后应检查此事件是否已推送 "enter"。
Detecting when user presses enter in Java
你的意思是你有另一个 @FXML 函数想要做同样的事情?只需将您的逻辑放在一个单独的函数中,然后从您的事件函数中调用它。
@FXML
public void buttonPressed(MouseEvent event) {
doSomething(event);
}
@FXML
public void keyPressed(KeyEvent event) {
doSomething(event);
}
private void doSomething(InputEvent event) {
// your code here
}
此KeyEvent 和MouseEvent 继承自InputEvent。您仍然可以调用 .getSource()
,因为它是继承的,并且在您显示的代码中,您对事件没有做任何更具体的事情。
我找到了适合我的解决方案。
您可以在 Scene Builder 中将该按钮设置为默认按钮,这样当您按下回车键时它也会激活该方法。