Não consigo pegar dados da tela!

4 respostas
andre_bento

Fala galera!!!
Po a galera aqui do fórum é fera... e já me ajudaram em um post aqui agora to com mais um problema pessoal!!!
Bom é o seguinte...

Estou com uma tela com o seguinte código:
package visao;

import java.awt.BorderLayout;
import java.awt.Container;
import java.awt.FlowLayout;
import java.awt.Font;
import java.awt.GridBagConstraints;
import java.awt.GridBagLayout;
import java.awt.GridLayout;
import java.awt.Insets;

import javax.swing.ImageIcon;
import javax.swing.JButton;
import javax.swing.JDialog;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JOptionPane;
import javax.swing.JPanel;
import javax.swing.JPasswordField;
import javax.swing.JRootPane;
import javax.swing.JTextField;

import modelo.Login;
import controle.ControleLogin;

public class TelaLogin extends JFrame{
	private JFrame pFrame;
	private JDialog fDialog;
	private JLabel lblUsuario;
	private JLabel lblSenha;
	private JTextField txtUsuario;
	private JPasswordField pswSenha;
	private Container c;
	private JPanel pNorte;
	private JPanel pCentro;
	private JPanel pCampos;
	private JPanel pBotoes;
	private JPanel pImagem;
	private TelaLogin tela;
	Login l;
	 private String usuario;
	 
	public TelaLogin(ControleLogin controle){
		
		
		//constroi o dialog
		fDialog = new JDialog(pFrame, true);
				
		//cria componentes
		c = fDialog.getContentPane();
		c.setLayout(new BorderLayout());
		pNorte = new JPanel(new FlowLayout(FlowLayout.CENTER));
		pBotoes = new JPanel(new GridLayout(1,2,20,5));
		pCentro = new JPanel( new FlowLayout(FlowLayout.CENTER));
		
		GridBagConstraints gc = new GridBagConstraints();
		//distancia em comprimento dos componetes
		gc.ipadx = 10;
		//alinhamento de componentes
		gc.anchor = GridBagConstraints.FIRST_LINE_START;
		//distancia das bordas dos componetes
		gc.insets = new Insets(5,5,2,2);
		
		
		pCampos = new JPanel(new GridBagLayout());
		pImagem = new JPanel(new GridBagLayout());
		
		lblUsuario = new JLabel("Usuário");
		txtUsuario = new JTextField(20);
		txtUsuario.setToolTipText("Digite seu nome de usuário no sistema");
		usuario = txtUsuario.getText();
		
		lblSenha = new JLabel("Senha");
		pswSenha = new JPasswordField(20);
		pswSenha.setToolTipText("Digite sua senha no sistema");
		JButton btnEntrar = new JButton("Entrar");
		btnEntrar.setIcon(new ImageIcon("icIr.png"));
		btnEntrar.setToolTipText("Clique aqui para realizar o Login no sistema!");
		JButton btnCancelar = new JButton("Cancelar");
		btnCancelar.setIcon(new ImageIcon("icCancelar.png"));
		
		//relaciona nome do componente ao evento.
		btnEntrar.setActionCommand("entrar");
		btnCancelar.setActionCommand("cancelar");
		
		//cria a imagem e o texto de bem-vindo
		JLabel lb = new JLabel();
		lb.setIcon(new ImageIcon("login.png"));
		JLabel texto = new JLabel("<html><center>Seja bem-vindo ao sistema.<br>Por favor, insira seu login e<br>senha. Se você não possui<br>login e senha, por favor,<br>contate o administrador.<br><br><br></center></html>");
		texto.setFont(new Font("Arial",1,16));
		lb.setOpaque(false);
		
		//adicionando componentes no gridBagLayout
		gc.gridx = 0;
		gc.gridy = 1;
		pCampos.add(lblUsuario,gc);
		gc.gridx = 1;
		gc.gridy = 1;
		pCampos.add(txtUsuario,gc);
		gc.gridx = 0;
		gc.gridy = 2;
		pCampos.add(lblSenha,gc);
		gc.gridx = 1;
		gc.gridy = 2;
		pCampos.add(pswSenha,gc);
		gc.gridx = 0;
		gc.gridy = 0;
		gc.gridwidth=2;
		gc.fill = GridBagConstraints.HORIZONTAL;
		pCampos.add(texto,gc);
		gc.gridx = 0;
		gc.gridy = 0;
		gc.gridwidth=0;
		gc.fill=0;
		pImagem.add(lb,gc);
		
		//adiciona componentes ao gridlayout
		pBotoes.add(btnEntrar);
		pBotoes.add(btnCancelar);
		
		//adiciona componentes ao container.
		pNorte.add(pImagem);
		pNorte.add(pCampos);
		pCentro.add(pBotoes);
		c.add(pNorte,BorderLayout.NORTH);
		c.add(pCentro,BorderLayout.CENTER);
		
		//adiciona ouvintes nos componentes
		btnEntrar.addActionListener(controle);
		btnCancelar.addActionListener(controle);
		
		//faz o botão entrar ser o padrão
		btnEntrar.setDefaultCapable(true);
		JRootPane rp = fDialog.getRootPane();
		rp.setDefaultButton(btnEntrar);
		
		
		//mostra a Dialog
		fDialog.setTitle("Login SCC");
		fDialog.pack();
		fDialog.setLocationRelativeTo(null);
		fDialog.setDefaultCloseOperation(JDialog.DO_NOTHING_ON_CLOSE);
		fDialog.setVisible(true);
		
		
	}//fim do construtor




		
	 
}//fim da classe
E meu controle com esse código :
package controle;

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

import javax.swing.JOptionPane;

import modelo.Login;
import visao.TelaLogin;
import dao.DAOFactory;
import dao.DAOLogin;

public class ControleLogin implements ActionListener{

	
	 DAOFactory df=DAOFactory.getDAOFactory(DAOFactory.POSTGRES);
	 DAOLogin dao = df.getDAOLogin();
	 private ControleLogin controle;
	 private TelaLogin  tela ;
	
	 
	
	public ControleLogin(){
		
		tela = new TelaLogin(this);
	}
	
	 public void actionPerformed(ActionEvent evt) {
		
		String comando = evt.getActionCommand();
		
		if (comando.equals("entrar")){
			try{
				// quando tento apenas mostrar o nome de usuário que peguei da tela através desse método ele dá
                                                              // NullPointerException!!!
                                                             //Também não sei commo vou fazer para coletar o nome de usuário  setar minha classe modelo para
                                                            // poder fazer a consulta no BD
                                                           //Aqui falta um pedaço de código para setar minha classe modelo! É o que to precisando!!
				
				Login l = new Login();
			
			
			dao.consultar(l);
			if (l.getUsuario()!= null){
				JOptionPane.showMessageDialog (null, "Suuuuuucesso!");
			}
			JOptionPane.showMessageDialog(null, "ERRO");
		}
	
	catch (Exception e){
	
		JOptionPane.showMessageDialog (null, "ERRO :" +e);
		
			}
		}
		
		if (comando.equals("cancelar")){
			try{
                                                //também não estou conseguindo fechar a janela!!!
			tela.fechar();
		}
			
			catch (Exception e){
				JOptionPane.showMessageDialog(null,"ERRO :"+e);}
			}
	}
	
	

	
	
	
}

Dá uma olhada nos comentários que coloquei no código galera!!!
Aguardo a resposta de vcs!!!
Um grande abraço a todos!!!

4 Respostas

marciofermino

Amigo seu código esta incompleto, amigo se precisar no meu site tem exemplo completo free para estudos

ou se precisar de aulas em particular. pode me procurar.

Laubstein_M_cio

Amigo seu código esta m pouco embaralhado, mas uma pergunta ao passar o objeto da classe ControleLogin para o construtor TelaLogin, você já havia instanciado ou não?

Abraço

andre_bento

Olá galera!!!
Po…esse meu código eu tousando como teste galera… mas ele tá confuso em que parte galera???
Po amigo Laubstein eu não instanciei o objeto da classe ControleLogin antes de passar para o construtor TelaLogin não!
Brigadão pela ajuda ae galera!!!

andre_bento

UP!!!
Ahjuda ae galeraaa!!

Criado 11 de novembro de 2008
Ultima resposta 12 de nov. de 2008
Respostas 4
Participantes 3