Login chamar outra classe[RESOLVIDO]

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?

[code]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;
}

}
[/code]

Meu main tá em outra classe, chamando o loginn

vlw :wink:

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

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

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

Bahh cara,
funfo direitinho

brigadãooo!!!

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