Login chamar outra classe[RESOLVIDO]

4 respostas
C

Olá pessoal,
to com um probleminha...
to desenvolvendo em swing, fiz uma classe de login na qual instanciei a tela principal...
mas mesmo inserindo usuário e senha corretos , ele não chama a próxima classe e mostra a msgbox...

alguém pode dá uma luz?

package com.systemhaus.swing.carolina.swing.estoque;

import java.awt.Color;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;

import javax.swing.BorderFactory;
import javax.swing.ImageIcon;
import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JMenu;
import javax.swing.JOptionPane;
import javax.swing.JPanel;
import javax.swing.JPasswordField;
import javax.swing.JTextField;

import com.jgoodies.forms.layout.CellConstraints;
import com.jgoodies.forms.layout.FormLayout;
import com.sun.org.apache.xml.internal.resolver.helpers.PublicId;

public class Login extends JFrame{
	private JPanel panel;
	private JLabel lblUsuario;
	private JTextField tfUsuario;
	private JLabel lblSenha;
	private JTextField tfSenha;
	private JPasswordField pfSenha;
	private JButton btnConfirmar;
	private CellConstraints cc = new CellConstraints();

	public Login(){
		initComponents();
		initListeners();
		initLayout();
		preparaTela();
	}
	

	private void initListeners() {
		btnConfirmar.addActionListener(new ActionListener(){

			@Override
			public void actionPerformed(ActionEvent e) {
				if (tfUsuario.getText()== "system" && pfSenha.getText()== "12345")  {
					TelaPrincipal tela= new TelaPrincipal();
				} else {
					JOptionPane.showMessageDialog (null, "Dados inválidos", "Senha inválida", JOptionPane.OK_CANCEL_OPTION);
				}
			}
			
		});
		
	}


	private void preparaTela() {
		this.add(panel);
		setTitle("Efetue seu Login");		
		setSize(250,180);
		setVisible(true);
		setBackground(Color.black);
		setVisible(true);
		
//	ImageIcon icone = new ImageIcon("Desktop/tete.jpeg");
//	setIconImage(getIconImage());
	}
	private void initLayout() {
		panel.add(lblUsuario, cc.xy(1, 1));
		panel.add(tfUsuario, cc.xy(3, 1));
		panel.add(lblSenha,cc.xy(1, 2));
		panel.add(pfSenha, cc.xy(3, 2));
		panel.add(btnConfirmar,cc.xy(3, 3));
	}
	
	
	private void initComponents() {
		panel = criaPnlPrincipal();
		lblUsuario = new JLabel("Usuário:");
		tfUsuario = new JTextField("");
		lblSenha = new JLabel("Senha:");
		pfSenha = new JPasswordField("");
		pfSenha.setEchoChar('*');
		btnConfirmar = new JButton("Confirmar");	
	}
	

	private JPanel criaPnlPrincipal() {
		JPanel panel = new JPanel(new FormLayout("pref,50px,50dlu,5dlu,50dlu" , "18dlu,18dlu, 18dlu"));
		panel.setBorder(BorderFactory.createEmptyBorder(5, 20, 5, 5));
		return panel;
	}
}

Meu main tá em outra classe, chamando o loginn

vlw :wink:

4 Respostas

B

A comparação entre objetos é feita com equals, não com ==.

if (tfUsuario.getText().equals("system") && pfSenha.getText().equals("12345"))
Nicolas_Fernandes

Olá, .com!

Cara, eu aconselho a fazer um método pra mostrar a tela, ao invés de deixar isso por conta do construtor.

Algo do tipo:

public void showDialog() {
        
        this.pack();
        this.setLocationRelativeTo(null);
        this.setVisible(true);
}

Coloque esse código na sua classe que vai aparecer quando o login for correto.
Aliás, coloque também esse código nessa sua classe pra construir a tela de login, do mesmo modo especificado abaixo.
Daí, adiciona no seu Listener assim:

if (/*suas comparações*/) {

   MinhaTelaPrincipal minhaTela = new MinhaTelaPrincipal();
   minhaTela.showDialog();
}

Tenta e posta aqui!

Espero ter ajudado!

[]'s

C

Bahh cara,
funfo direitinho

brigadãooo!!!

pedroroxd

Depois que o problema for resolvido, adicione no Assunto [Resolvido]…
:smiley:

Criado 18 de setembro de 2009
Ultima resposta 19 de set. de 2009
Respostas 4
Participantes 4