Enquanto estiver conectado

Bom dia pessoal, sou iniciante em Java e estou com uma situação que não consigo resolver.

Minha aplicação tem uma Jframe para o usuário inseir o user e senha para acesso a um banco SQL.

A conexão ocorre sem problemas, acontece que eu queria que nessa tela, enquanto estiver conectado no banco, o usuário e senha fique preenchido e um jlabel escrito conectado fique aparecendo.

Eu fiz um While mas ele entra em loop infinito e trava a aplicação.

Obrigado desde já!

private void conectarActionPerformed(java.awt.event.ActionEvent evt) {                                         
    String usuario = campouser.getText();
    String senha = String.valueOf(camposenha.getPassword());
    
    SybaseConnection conect = new SybaseConnection();
    try {
        conect.ODBCConnect("contabil", usuario, senha);
    } catch (SQLException ex) {

        Logger.getLogger(config.class.getName()).log(Level.SEVERE, null, ex);
    }
    
    Connection con = conect.getConnection();
    if(con!=null){
    JOptionPane.showMessageDialog(null, "Conectado com sucesso");
    
    while(con!=null){
    campouser.setText(usuario);
    camposenha.setText(senha);
    }
    
    dispose();
    }

Vc nem precisa fazer muito malabarismo, é só deixar escrito conectado lá. Só quando fizer o loggoff ou algo que precise fechar a conexão que vc muda o status pra desconectado.

Cara, eu até consegui o que eu queria, mudei a cor do botão quando a conexão fosse diferente de Null, mas quando eu fecho a Jfram e abro novamente ela perde as configurações e mesmo assim continua conectado. Será que teria uma forma de quando abrir novamente ele ficar como conectado e os dados preenchidos.

Olha as imagens!

Ao invés de dar dispose, da um setVisible(false

Como eu faço pra usar o setVisible(false) no botão fechar do jframe, em defautCloseOperation eu tentei incluir mas não consegui, achei alguma coisa de importar o WindowEvent mas não deu certo também.

        setDefaultCloseOperation(WindowConstants.DO_NOTHING_ON_CLOSE);
        addWindowListener(new WindowAdapter() {
            public void windowClosing(WindowEvent evt) {
                setVisible(false);
            }
        });