@Chaybelucas escreveu:
Olá
Tenho uma aplicação em JavaFX que tem a tela de login e deve direcionar para a tela principal. Porém, quando valido o Login, a tela do login PERMANECE.Tudo funciona corretamente, mas isso não. Como "fechar" o Stage sem fechar toda a aplicação?
Observação: já tentei usar ostage.close();
e ostage.hide();
Não funcionou.Atualmente, estava tentando criar um Stage separado, por isso minha classe ficou estranha. Segue a classe
public class Main extends Application { Stage meuStage = new Stage(); // stage que chama o login Stage meuStage2 = new Stage(); // stage que chama a tela principal Constante c = new Constante(); DialogFX dialog = new DialogFX(); // criei isso, ignore. boolean verificador = false; @FXML TextField txtUsuario; // está vindo de um FXML @FXML PasswordField txtSenha; // está vindo de um FXML public void criarTela() { // Chama a tela de login try { Pane root = FXMLLoader.load(getClass().getResource("/view/Form_Login.fxml")); Scene scene = new Scene(root); meuStage.setTitle("Login"); meuStage.setScene(scene); meuStage.show(); } catch(Exception e) { JOptionPane.showMessageDialog(null, "Erro\n"+e.getMessage()); } } @FXML public boolean login() { // Verifica o login int cont = 0; try { Class.forName(c.DRIVER); Connection conn = DriverManager.getConnection(c.URL, c.USER, c.PASSWORD); Statement stm = conn.createStatement(); ResultSet result = stm.executeQuery("SELECT COUNT(*) AS cont FROM B001 WHERE " + "B001_USUARIO='"+txtUsuario.getText()+"' AND B001_SENHA=md5('"+txtSenha.getText()+"'); "); while(result.next()) { cont = result.getInt("cont"); } if(cont == 1) { // deve fechar o meuStage e abrir o meuStage2 verificador = true ; meuStage.close(); // não vai Pane root = FXMLLoader.load(getClass().getResource("/view/Form_Principal.fxml")); Scene scene = new Scene(root); meuStage2.setMinHeight(500); meuStage2.setMinWidth(800); meuStage2.setScene(scene); meuStage2.show(); } else if(cont > 1) { verificador = false ; dialog.showDialog("error", "Falha no login", "Registro duplicado", "Por favor, entre em contato com o suporte"); } else if(cont <= 0) { verificador = false ; dialog.showDialog("error", "Falha no login", "Registro não encontrado", "Verifique suas credenciais!"); } } catch (ClassNotFoundException e) { dialog.showDialog("error", "ClassNotFoundException", "Verifique o driver da conexão", e.getMessage()); } catch (SQLException e) { dialog.showDialog("error", "SQLException", "Verifique a query da conexão", e.getMessage()); } catch (Exception e) { dialog.showDialog("error", "Exception", "Entre em contato com o suporte", e.getMessage()); } return verificador; } @Override public void start(Stage primaryStage) throws Exception { Main main = new Main(); main.criarTela(); } public static void main(String[] args) { launch(args); } }
Mensagens: 4
Participantes: 2