to aqui no JFX, tava com om problema aqui estranho mas entendi em parte configurei um botão na aplicação de “enter” para trocar de janela quando a senha estiver correta posso confirma clicando no botão com o mouse ou apertando o enter do teclado.
Quando digito a senha e uso o mouse para confirma funciona porem…
Quando digito a senha e aperto o enter do teclado não acontece nada.
A principio nao entendi mas vi que quando aperto enter do teclado o curso de texto continua na PasswordField (e como se o enter do teclado tivesse adicionado outro caractere) e nao efetivando o clique no botão enter da aplicação.
Como resolvo isso?
package controladores;
import java.net.URL;
import java.util.ResourceBundle;
import javax.swing.plaf.basic.BasicInternalFrameTitlePane.RestoreAction;
import javafx.fxml.FXML;
import javafx.fxml.Initializable;
import javafx.scene.control.Alert;
import javafx.scene.control.Alert.AlertType;
import javafx.scene.control.Button;
import javafx.scene.control.PasswordField;
import javafx.scene.control.TextField;
import javafx.scene.input.KeyCode;
import javafx.scene.input.KeyEvent;
import javafx.scene.input.MouseEvent;
import javafx.stage.Stage;
import programa.Cadastro;
import programa.Main;
public class controladorTelaLogin implements Initializable {
@FXML
private Button btnLog;
@FXML
private TextField logNome;
@FXML
private PasswordField logSenha;
public void logar() {
if(logNome.getText().equals("m") && logSenha.getText().equals("123")) {
Main.getTelaLogin().close();
Cadastro cadastro = new Cadastro();
cadastro.janelaCadastro();
try {
cadastro.start(new Stage());
} catch (Exception e) {
e.printStackTrace();
}
}
else {
Alert alert = new Alert(AlertType.ERROR);
alert.setHeaderText("Algo deu errado!");
alert.setTitle("Error");
alert.setContentText("ID ou senha invalida");
alert.show();
}
}
@Override
public void initialize(URL arg0, ResourceBundle arg1) {
btnLog.setOnMouseClicked((MouseEvent e) -> {
logar();
});
btnLog.setOnKeyPressed((KeyEvent e) -> {
if (e.getCode() == KeyCode.ENTER) {
logar();
}
});
}
}