Abrir outra janela

8 respostas
W

estou com uma dúvida, conheço java mas apenas web não tenho esperiencia em desktop e estou sentindo dificuldades em trabalhar com janelas, estou usando o netbeans, e gostaria de fazer o seguinte, criei um frame e coloquei um panel dentro referente a um login

public static void main(String args[]) {
        java.awt.EventQueue.invokeLater(new Runnable() {
            public void run() {
                TelaMain telaMain = new TelaMain();
                telaMain.setVisible(true);
                TelaLogin telaLogin = new TelaLogin();

                telaMain.setContentPane(telaLogin);
               
            }
        });
    }

na parte do login ele valida no banco

private void entrarActionPerformed(java.awt.event.ActionEvent evt) {                                       

        logar();

    }                                      


    public void logar(){
        Connection con;

        try{

        Class.forName("com.mysql.jdbc.Driver");

        con = DriverManager.getConnection("jdbc:mysql://localhost:3306/ufpa","root","prodepa");

        Statement stm = con.createStatement();

        String sql =  "Select * from usuario where login = '" + login.getText() + "' and senha = '" + senha.getText() + "'";

        ResultSet rs = stm.executeQuery(sql);

        if (rs.next()){
            JOptionPane.showMessageDialog(null, "Login efetuado com sucesso","Logado",JOptionPane.INFORMATION_MESSAGE);// TODO add your handling code here:            
        }
        else{
            JOptionPane.showMessageDialog(null, "Login ou senha inválidos","Não Logado",JOptionPane.ERROR_MESSAGE);// TODO add your handling code here:
        }

        }
        catch (Exception e){
            e.printStackTrace();
        }
    }

o que deve ser feito para após validar o login ele chamar uma janela que iria conter a janela principal do sistema com menu e tudo mais, gostaria de saber como chamar essa nova janela.

8 Respostas

J

da um dispose na tela de login, e cria a principal como vc fez acima.

W

a minha idéia era usar a telaMain como pricipal, é apenas um frame com nada dentro onde eu chamaria os panels, não sei se essa seria a melhor abordagem, caso seja melhor de outro jeito gostaria de saber.

por exemplo como eu “apagaria” esse conteudo e colocaria o da janala do sistema com o menu

J

bom, tenho pouco experiencia em java, nunca fiz assim.

Mas tenta dar um dispose na telalogin e add outro panel.

W

em que parte do código faria esse dispose, já que deve ter tbm uma validação pq só daria o dispose se o login e senha estivessem corretos

J
if (rs.next()){  
    JOptionPane.showMessageDialog(null, "Login efetuado com sucesso","Logado",JOptionPane.INFORMATION_MESSAGE);
}

Poderia ser nesse if, afinal vc não utilizara mais ela.

W

o Panel não aceita dispose, teria que dar um dispose no frame? e em que parte do código chamaria a nova tela?

J

nao, dispose no frame nao pois vc so quer trocar o panel né?

J

Tenta o seguinte, da um removeall no frame e add o outro panel

Criado 25 de agosto de 2009
Ultima resposta 25 de ago. de 2009
Respostas 8
Participantes 2