Fala ae pessoal!!!
Po galera… to precisando muito da ajuda de vcs ae!!!
A parada é o seguinte…Estou desenvolvendo um aplicativo para um amigo meu aqui e empaquei em uma parte aqui do projeto!
Tipo… estou precisando de buscar algumas informações no banco através de meu controle… só que toda vez que crio um objeto da minha tela para poider pegar as informações do textField ele me vem com um erro de StackOverFlow! Mas não sei como consegui estourar a pilha!!
O código do meu controle é esse ae:
[code]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 TelaLogin tela ;
public TelaLogin (){
tela = new TelaLogin(); //toda vez que tento isso ele me vem com o StackOverFlow!!!!!
}
public void actionPerformed(ActionEvent evt) {
String comando = evt.getActionCommand();
if (comando.equals("entrar")){
try{
Login l = new Login();
l.setUsuario(tela.getTxtUsuario());
dao.consultar(l);
if (l.getUsuario()!= null){
JOptionPane.showMessageDialog (null, "Suuuuuucesso!");
}
JOptionPane.showMessageDialog(null, "ERRO");
}
catch (Exception e){
JOptionPane.showMessageDialog (null, "ERRO :" +e);
}
}
}
}
[/code]
O código da minha tela é esse ae :
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.JPanel;
import javax.swing.JPasswordField;
import javax.swing.JRootPane;
import javax.swing.JTextField;
import modelo.Login;
import controle.ControleLogin;
public class TelaLogin {
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;
public TelaLogin(){
//controle
ControleLogin controle = new ControleLogin();
//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");
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
public Login pegaDados (Login l){
String usuario = txtUsuario.getText();
l.setUsuario(usuario);
return l;
}
public String getTxtUsuario() {
String txtUsuario2 = txtUsuario.getText();
return txtUsuario2;
}
public void setTxtUsuario(JTextField txtUsuario) {
this.txtUsuario = txtUsuario;
}
}//fim da classe
Po galera… me dá essa força ae!!!
Desde já agradeço muito pela ajuda ae!!
Abração a todos!!!