Fechar uma tela de Login logo após a validação do usuário

Olá pessoal;

Estou com dificuldade param fechar uma tela de Login. Ela deveria fechar ou ao menos ficar invisível, no momento em que chamo a tela de menus. O fato é que a de menus apenas se sobropóe a ela, ficando as duas visíveis.
Alguem sabe como me ajudar? Só quero fechar a tela de Login.

Eis o código:

[code]public void displayAplicacao(){

	AplicacaoSWT aplicacao = new AplicacaoSWT(cTabFolder, SWT.NONE);

	aplicacao.setSize(new Point(00, 200));
	aplicacao.setBackgroundImage(new Image(Display.getCurrent(),          getClass().getResourceAsStream("/imagem/backg0.gif")));
	cTabItem.setControl(aplicacao);
	PainelPrincipal principal = new PainelPrincipal(getParent(),getStyle());
  
            ///Aqui eu tento deixar a tela atual (login)invisível.
	 principal.setVisible(false);  
	 principal = null;  
	 aplicacao.setVisible(true);[/code]

}

Alguem consegue me ajudar?

Valeu gente.

E ae???

tenta o seguinte

principal.DISPOSE;

Abraço…

Não rolou…continuam as duas telas… :cry:

Então, tem que usar o dispose() mesmo, coloca no evento do botão que faz o teste da validação, mais ou menos assim:

if((user.equals(usuario))&& (code.equals(senha))){ // aqui vc faz o teste de validação da sua maneira . . . dispose(); // fecha a janela atual Aplicacao(); // abre a nova janela }

1 curtida

Então…mesmo assim não deu certo. A janela principal não fecha…prevalecendo as duas…a principal, que é onde faço o Login, e a de Menu, que é a que eu chamo de fato.

Eis o código:

[code]////Código da Classe Login, mais espeficadamente o método no Botão
public class Login extends Composite{

private Shell sShell = null;
private Label labelUsuario = null;
private Label labelSenha = null;
public Text textUsuario = null;
private Text textSenha = null;
private Label labelLogo = null;
private Button buttonSalvar = null;

   public Login(Composite parent, int style) {
	super(parent, style);
	initialize();
}

/**
 * This method initializes sShell
 */
private void initialize() {

   buttonSalvar = new Button(this, SWT.NONE);
	buttonSalvar.setBounds(new Rectangle(145, 360, 110, 70));
	buttonSalvar.setImage(new Image(Display.getCurrent(), getClass().getResourceAsStream("/palmesecure/img/access.png")));
	buttonSalvar
	.addSelectionListener(new org.eclipse.swt.events.SelectionAdapter() {
		public void widgetSelected(org.eclipse.swt.events.SelectionEvent e) {
			System.out.println("Consulta"); // TODO Auto-generated Event stub widgetSelected()
			((PainelPrincipal)getParent().getParent()).displayAplicacao();
			
			
			boolean valida = false;	
			if(textUsuario.getText().toString() == "" || textSenha.getText().toString()== ""){
				valida=true;
			}else{		
				limpaTexto();
			}
			
			
		}
	});
	

          ////Essa é a classe PainelPrincipal onde coloco os métodos de chamada///
         public class PainelPrincipal extends Composite {

private CTabFolder cTabFolder = null;
private Login painelLogin = null;

private CTabItem cTabItem = null;

public PainelPrincipal(Composite parent, int style) {
	super(parent, style);
	initialize();
}
    public void displayAplicacao(){
	  
	AplicacaoSWT aplicacao = new AplicacaoSWT(cTabFolder, SWT.NONE);

	aplicacao.setSize(new Point(00, 200));
	aplicacao.setBackgroundImage(new Image(Display.getCurrent(), getClass().getResourceAsStream("/imagem/backg0.gif")));
	cTabItem.setControl(aplicacao);
	///Aqui insiro o Dispose
	dispose();
            aplicacao();
	
}[/code]

  Esse é o código que estou usando. Ele chama outra janela padrão Shell, e até aí td bem. mas o problema é q a tela do painel principal onde está o login prevalece.

Valeu.

dispose();

Impossivel nao dar certo…
ja fiz sistema desse nipe seu.

Da 1 Bico no Meu Metodo…
Achei a Aplicação.

[code]
public void testaLogin(String login, String senha) throws SQLException{

    Connection c = ConnectionFactory.CriarConexao();
    String sql = "Select 1 from Login where usuario = ? and senha = ?";     
    PreparedStatement ps = c.prepareStatement(sql);   
    ps.setString(1, login);     
    ps.setString(2, senha);     
    ResultSet rs = ps.executeQuery();     
         
    
    if (rs.next()){ // Ve? Ele Abre a nova tela e Fecha essa de Login.
    	new StartSystem().setVisible(true);
    	dispose();
       
    rs.close();     
    ps.close();     
       
}
    else{
    	JOptionPane.showMessageDialog(null, "Login e/ou Senha Incorretos","Tente Novamente",1);
    	TxtPass.setText("");
    	TxtUser.setText("");
    }

}

A Diferença do Seu pro Meu…

Poe o Metodo Pra Chama a Tela Primeiro =D.
Dps poe o Dispose(); ve ai quem sabe n funfa