Problema com construtor

[i]Bom dia pessoal, pessoal eu já li varias explicaçõe sobre construtores e ainda estou com problema com construtores, tipow eu criei uma formulario de clientes, e nessa classe eu deixei só a interface do programa mesmo, e em outra classe eu criei os metodos de incluir clientes, atualizar clientes e etc… O problema está ai não sei se criei o contrutor corretamente para a classe do formulario chammar a classe que estão os metod de incluir e etc ai vai uma explicação para entender o meu problema:

Vou colocar um exemplo de como estou fazendo:[/i]

classe do formulario de cadastro do cliente:

[code]import javax.swing.;
import java.awt.
;
import java.awt.event.;
import java.sql.
;

public class CadastraUsuario implements ActionListener {

JLabel labelNome =new JLabel(“Nome”);
JLabel labelSenha =new JLabel(“Senha”);

JTextField txtNome =new JTextField(40);
JTextField txtSenha =new JTextField(30);

JButton btnInseri =new JButton(“Inserir”);

JPanel panel =new JPanel();

public CadastraUsuarios() {
montaCadastroUsuario();
}

public void montaCadastroUusuario() {
JFrame.setDefaultLookAndFeelDecorated(true);
JFrame frame =new JFrame();
frame.setTitle(“Cadastro - Uusuario”);
frame.setSize(500, 300);
frame.setLocation(300, 200);

panel.add(labelNome);
panel.add(txtNome);
panel.add(labelSenha);
panel.add(txtSenha);

//Botão inserir
btnInseri.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
BaseDadosClientes bdc =new BaseDadosClientes();
bdc.inseriClientes();
}
});

//O problema está ai ele não iseri os clientes e também nem erro dá

frame.add(panel);
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
frame.setVisible(true);
}

public static void main(String[] args) {
new CadastraUsuario();
}
}[/code]

classe onde estão os metodos de inserir e etc…

[code]import java.sql.;
import org.postgresql.util.
;

public class BaseDadosClientes {

Statement stmt;
ResultSet rs;

public BaseDadosClientes() {
}

public Connection conecta() {
try {

class.forName(“org.postgresql.Driver”);
String url = “jdbc:postgresql://localhost/sistema”;
string user = “postgres”;
String pass = “xxxxxx”;

conn = DriverManager.getConnection(url, user, pass);
}
catch(Exception e) {
System.out.println(e.getMessage());
}
}

public void inseriClientes() {
//aqui vão os metodos para inserir clientes
}

public void atualizaClientes() {
//aqui vão os metodos para atualizar clientes
}
}[/code]

Se alguém poder me ajudar, desde já agradeço :lol:

Bom olhando o codigo eu acho q o problema esta na declaracao do construtor

 public CadastraUsuarios() {  
   montaCadastroUsuario();  
 }  

Tem q ser igual a declaracao da classe.
O problema esta que vc declarou o construtor como CadastroUsuarios e tem q ser CadastroUsuario sem o S

Tenta assim

 public CadastraUsuario() {  
   montaCadastroUsuario();  
 }  

Então correainfo mas continua não pegando os metodos da classe BaseDadosClientes, tipow como eu deveria deixar o construtor da classe BaseDadosClientes para que a classe do CadastroClientes possa acessar corretamente ela?
Abraço

Ele so vai entrar nesse metodo quando houver uma acao no botao inserir.
Coloque um breakpoint depois do actionPerformed vc vai ver q ele vai inserir quando o botao inserir for clicado.

 //Botão inserir  
 btnInseri.addActionListener(new ActionListener() {  
 public void actionPerformed(ActionEvent e) {  
   BaseDadosClientes bdc =new BaseDadosClientes();  
   bdc.inseriClientes();  
 }  
 });  

Se você deixar o construtor da classe BaseDadosClientes do jeito que está a classe CadastroClientes pode criar uma instancia de BaseDadosClientes sem problemas.

Bom, correainfo te monstrou um erro grave: O construtor da classe deve ter o mesmo nome da classe.

Como está a implementação do seu metodo inseriClientes() ? Em que momento você está se conectando ao banco ?

Seu codigo tá estranho amigo, você nao passa NADA por parametro para o metodo inseriClientes()?

Penso que a logica deveria ser assim: Após preencher o formulário, ao clicar no botao INSERIR, os dados do formulario são passados para o metodo inseriClientes(), este que se conecta no banco atraves do metodo conecta() e então insere os dados no banco.

T+

Vitor …

de uma olha no exemplo do link , la mostra uma maneira de separar as responsabilidades.

http://www.guj.com.br/posts/list/92153.java#499167

A ideia é ter um Model, Controle, View e uma classe para transferir dados.

veja se é isso que vc deseja.

ate+

[i]Era isso mesmo debug que eu estava precisando, mas tipow não é obrigatório eu criar a rotina dentro do contrutor né? eu posso criar um objeto e chamar dentro dele? tipow eu criar um objeto e chamar dentro dele

tipow um exemplo:[/i]

[code]public class Cadastro {

String nome;
String sobreNome;

public Cadastro() {
montaCadastro();
}

public void montaCadastro() {
this.nome = “nome”;
this.sobreNome = “Sobenome”.
}
}[/code]

eu posso fazer assim?

sim , sem problemas

da na mesmo é apenas uma maneira de organizar seu fonte.

fico feliz poder ajudar, pois demorei pacas para entender isso hehe

abraço

ate
Ayres

[i]Valeu debug pela ajuda agradecido mesmo!! hehe… estava dificil de entender peguei varias explicações, mas sempre quando eu começava a escrever os codigos, tudo embaralhava na cabeça ai saia tudo errado!!

Mas valeu!!

ABraço[/i]