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

7 respostas
arthurgon

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:

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);
}

Alguem consegue me ajudar?

Valeu gente.

7 Respostas

Danillo_Moreno

E ae???

tenta o seguinte

principal.DISPOSE;

Abraço…

arthurgon

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

Paulo_Ferreira1

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 }

arthurgon

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:

////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();
		
	}
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.

colored

dispose();

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

colored

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("");
}

}

colored

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

Criado 15 de julho de 2008
Ultima resposta 16 de jul. de 2008
Respostas 7
Participantes 4