Método setVisible [RESOLVIDO]

Bom dia,

estou utilizando o método setVisible(false) no netbeans e funciona perfeitamente mas, quando tentei criar uma classe igual no eclipse ele dá erro, alguém pode me dizer o porque, ou me dar uma alternativa para fechar a tela?
O método se encontra assim:

btnEntrar.addActionListener(new ActionListener() {
			public void actionPerformed(ActionEvent arg0) {
				
				String login = null;
	            String password = null;
	            login = textField.getText();
	            password = new String(passwordField.getPassword());
	            int verif = 0; //verificar se abriu a tela
	            try
	            {       
	                while (con_login.r.next())
	                {
	                    if (login.equals(con_login.r.getString("user")) 
	                            && (password.equals(con_login.r.getString("password"))))
	                    {
	                        new Menu().setVisible(true);
	                        verif = 1;
	                        this.setVisible(false);
	                    }
	                }
	                con_login.r.first();
	                if (verif == 0)
	                {
	                    this.setVisible(false);
	                    JOptionPane.showMessageDialog(null, "Usuario ou senha incorretos");
	                    new Login().setVisible(true);
	                }
	            }
	            catch (SQLException erro)
	            {
	                JOptionPane.showMessageDialog(null, "Ocorreu o erro: "+erro);
	            }
			}
		});

Obrigado.

dispose();

Amigo, utilize o que o Luan Kevin mostrou, quando vc utiliza o setVisible(false), vc não esta fechando a tela e sim deixando ela invisível, mas ela ainda existe na memoria… :slight_smile:

this.dispose();

[quote=Bruno.Souza.PW]
Amigo, utilize o que o Luan Kevin mostrou, quando vc utiliza o setVisible(false), vc não esta fechando a tela e sim deixando ela invisível, mas ela ainda existe na memoria… :slight_smile:

this.dispose(); [/quote]

Oi,

Neste caso dele sim. O dispose() fará com que os objetos sejam eliminados da memória. Porém nem sempre o dispose() faz isso, como por exemplo, quando existir uma instancia dessa janela em algum lugar. Exemplo:

Janela meu_frame = new Janela(); meu_frame.dispose();

O que pode-se fazer neste caso e eliminar essa referencia jogando null:

Janela meu_frame = new Janela(); meu_frame.dispose(); meu_frame = null;

Tchauzin!

Obrigado, funcionou perfeitamente o “dispose();”.
Estou começando a parte de form em java, só peguei a teoria até eventos do livro Deitel - Como programar Java, 6 edição.

Obrigado pela ajuda.