我具有单击按钮时运行的功能,但是我想在按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);
}
}
答案 0 :(得分:0)
您需要一个关键事件,然后应检查此事件是否为“已输入”。
答案 1 :(得分:0)
您的意思是您还有另一个要执行相同操作的@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()
,因为它是继承的,并且在您显示的代码中,您没有对事件进行更具体的操作。
答案 2 :(得分:0)
我为我找到了一个可行的解决方案。
您可以在Scene Builder中将按钮设置为“默认按钮”,因此当您按Enter时,它也会激活该方法。