Ir ao conteúdo
  • Cadastre-se
Entre para seguir isso  
Makael

[Resolvido] enviar um valor para um textfield de outra classe

Recommended Posts

estou com um problema na pesquisa no bd, eu realizo a pesquisa no procura() do arquivo 'conecta' ele me retorna o valor q quero achar normal, porém quando vou enviar o getNome() q esta no procura da classe 'conecta' para a classe 'janelapadraoteste' no metodo posicionarRegistro() ele aparece como vazio, e q deveria, ou pelo menos é o q eu quero fazer, colocar o valor encontrado no campo nome, q é um jtextfield, do 'janelapadraoteste'...

em todo o caso seria isso

 public String procura(){  

ResultSet busca = null;
try {
Class.forName(STR_DRIVER).newInstance();
try {
con = DriverManager.getConnection(STR_CON,USER, PASSWORD);
System.out.println("conectado");
try {
try {
PreparedStatement stm = con.prepareStatement("SELECT nome FROM CADASTRO where nome = ?");
stm.setString(1, getNome());
busca= stm.executeQuery();

while(busca.next()){
setNome(busca.getString("nome"));
//System.out.println(nome);
//jtxtFldDescricao.setText(busca.getString("nome"));

System.out.println("encontrado");}
} catch (Exception ex) {
System.out.println("\nErro no resultset!\n" + ex);
}
} catch (Exception ex) {
System.out.println("\nErro no statement!");
}
} catch (Exception ex) {
System.out.println("\nErro no connection!");
}
} catch (Exception ex) {
System.out.println("\nDriver nao pode ser carregado!");
}
System.out.println(nome);
// new janela(busca.getText("nome")).setVisible(true);
return (nome);


}

ai esse retorno nome, ou qualquer retorno dessa busca preciso enviar pra outra classe 'janelapadraoteste'... q eu fiz dessa forma...

 public void posicionarRegistro(){    
c= new Conecta();
String nome = c.procura();
System.out.println(nome);

jtxtFldDescricao.setText(nome);

JOptionPane.showMessageDialog(this, "Posicionou os dados da tabela principal") ;
};

Compartilhar este post


Link para o post
Compartilhar em outros sites

acho que é mais fácil no método procura, voce criar uma String nome (retorno) e atribuir ela quando encontrar.

E pelo visto voce quer encontrar 1 nome só ou i alterando?

se for só encontrar, é melhor colocar IF no lugar do while

e ver isso


setNome(busca.getString("nome"));

voce pode atribuir


String nome = busca.getstring("nome");

Seria melhor voce colocar aqui também toda a sua classe, pra ficar melhor

Compartilhar este post


Link para o post
Compartilhar em outros sites
acho que é mais fácil no método procura, voce criar uma String nome (retorno) e atribuir ela quando encontrar.

E pelo visto voce quer encontrar 1 nome só ou i alterando?

se for só encontrar, é melhor colocar IF no lugar do while

poderia me dar um exemplo com if??? é q sou novo ainda e fiz isso baseado no q o professor passou em sala de aula...

Compartilhar este post


Link para o post
Compartilhar em outros sites

como eu te falei é só trocar o while por um IF nesta parte em negrito


[B][U]while[/U][/B](busca.next()){
setNome(busca.getString("nome"));
//System.out.println(nome);
//jtxtFldDescricao.setText(busca.getString("nome"));

Compartilhar este post


Link para o post
Compartilhar em outros sites

classe conecta...


import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;

public class Conecta {

JanelaPadraoTeste janela;

private String STR_DRIVER = "com.mysql.jdbc.Driver";
private String DATABASE = "cadastro";
private String IP = "localhost";
private String STR_CON = "jdbc:mysql://" + IP +"/"+ DATABASE;
private String USER = "root";
private String PASSWORD = "123456";

Connection con;
private String cpf;
private String nome;
private String endereco;

public String getCpf() {
return cpf;
}
public void setCpf(String cpf) {
this.cpf = cpf;
}
public String getNome() {
return nome;
}
public void setNome(String nome) {
this.nome = nome;
}
public String getEndereco() {
return endereco;
}
public void setEndereco(String endereco) {
this.endereco = endereco;
}
/*public Connection getConexao(){
Connection con = null;
try {
Class.forName(STR_DRIVER);
con = DriverManager.getConnection(STR_CON, USER, PASSWORD);
System.out.println("[ConnectionManager]: Obtendo conexao");

} catch (ClassNotFoundException e) {
String errorMsg = "Driver nao encontrado";
} catch (SQLException e) {
String errorMsg = "Erro ao obter a conexao";
}
return con;
}

public void closeAll(Connection con) {
try {
if (con != null) {
con.close();
}
} catch (Exception e) {
String errorMsg = "Nao foi possivel fechar a conexao com o banco";
}
}

public void closeAll(Connection con, Statement stmt, ResultSet rs) {
try {
if (con != null || stmt != null) {
closeAll(con, stmt);
}
if (rs != null) {
rs.close();
}
} catch (Exception e) {
String errorMsg = "Nao foi possivel fechar o resultSet do banco";
}
}

public void closeAll(Connection con, Statement stmt) {
try {
if (con != null) {
closeAll(con);
}
if (stmt != null) {
stmt.close();
}
} catch (Exception e) {
String errorMsg = "Nao foi possivel fechar a statement do banco";
}
} */

public void insere() {
try {
Class.forName(STR_DRIVER).newInstance();
try {
con = DriverManager.getConnection(STR_CON,USER, PASSWORD);
System.out.println("conectado");
try {
try {
PreparedStatement stm = con.prepareStatement("insert into CADASTRO (CPF, NOME, ENDERECO) values (?, ?, ?)");
stm.setString(1,getCpf());
stm.setString(2,getNome());
stm.setString(3,getEndereco());
stm.executeUpdate();
} catch (Exception ex) {
System.out.println("\nErro no resultset!\n" + ex);
}
} catch (Exception ex) {
System.out.println("\nErro no statement!");
}
} catch (Exception ex) {
System.out.println("\nErro no connection!");
}
} catch (Exception ex) {
System.out.println("\nDriver nao pode ser carregado!");
}

}
public String procura(){

ResultSet busca = null;
try {
Class.forName(STR_DRIVER).newInstance();
try {
con = DriverManager.getConnection(STR_CON,USER, PASSWORD);
System.out.println("conectado");
try {
try {
PreparedStatement stm = con.prepareStatement("SELECT nome FROM CADASTRO where nome = ?");
stm.setString(1, getNome());
busca= stm.executeQuery();

while(busca.next()){
setNome(busca.getString("nome"));
//System.out.println(nome);
//jtxtFldDescricao.setText(busca.getString("nome"));

System.out.println("encontrado");}
} catch (Exception ex) {
System.out.println("\nErro no resultset!\n" + ex);
}
} catch (Exception ex) {
System.out.println("\nErro no statement!");
}
} catch (Exception ex) {
System.out.println("\nErro no connection!");
}
} catch (Exception ex) {
System.out.println("\nDriver nao pode ser carregado!");
}
//System.out.println(nome);
// new janela(busca.getText("nome")).setVisible(true);
return (nome);


}
public void excluir(){
try {
Class.forName(STR_DRIVER).newInstance();
try {
con = DriverManager.getConnection(STR_CON,USER, PASSWORD);
try {
//stmt.executeUpdate("DELETE FROM CADASTRO where nome =(?)");
PreparedStatement stm = con.prepareStatement("DELETE FROM cadastro WHERE nome = ?");
stm.setString(1, getNome());
stm.executeUpdate();
System.out.println("excluido");

} catch (Exception ex) {
System.out.println("\nErro no statement!");
}
} catch (Exception ex) {
System.out.println("\nErro no connection!");
}
} catch (Exception ex) {
System.out.println("\nDriver nao pode ser carregado!"); }
}

public void editar(Connection con, Statement stmt){
try {
if (con != null) {
stmt.executeUpdate("UPDATE NOME, CPF, CIDADE, ENDERECO FROM CADASTRO");
System.out.println("atualizado");}
}catch (Exception e3) {
String errorMsg = "Nao foi possivel atualizar o item no banco";
}}
};



classe JanelaPadraoTeste

import javax.swing.*;
import java.awt.*;

public class JanelaPadraoTeste extends JanelaPadrao {


Conecta c;
JLabel lblCodigo = new JLabel("CPF");
JLabel lblDescricao = new JLabel("Nome");
JLabel lblcidade = new JLabel("Cidade");
JLabel lblendereco = new JLabel("Endereço");

JTextField jtxtFldCodigo = new JTextField("");
JTextField jtxtFldDescricao = new JTextField("");
JTextField jtxtFldendereco = new JTextField("");
JComboBox cidade= new JComboBox();

public void ajuda() {
JOptionPane.showMessageDialog(this, "Chamou a ajuda") ;
}

public void fecharOuEsconder() {
//Para esconder ... setVisible(false);
//Para fechar definitivamente
System.exit(0);
}

public boolean inserirRegistro() {

c = new Conecta();
c.setNome(jtxtFldDescricao.getText());
c.setCpf(jtxtFldCodigo.getText());
c.setEndereco(jtxtFldendereco.getText());
c.insere();
JOptionPane.showMessageDialog(this, "Inseriu") ;
return true;
}

public boolean alterarRegistro() {
JOptionPane.showMessageDialog(this, "Alterou") ;
return true;
}

public boolean localizarRegistro() {
String localiza = JOptionPane.showInputDialog("Digite um nome para procura:");

c = new Conecta();

//c.setNome(jtxtFldDescricao.getText());

c.setNome(localiza);
c.procura();
JOptionPane.showMessageDialog(this, "Localizou") ;
return true;

}
public boolean excluirRegistro() {
c = new Conecta();
c.setNome(jtxtFldDescricao.getText());
c.excluir();
JOptionPane.showMessageDialog(this, "Excluiu o registro principal") ;
return true;
}

public boolean excluirRegistrosRelacionados() {
JOptionPane.showMessageDialog(this, "Excluiu os registros relacionados") ;
return true;
}

public void posicionarRegistro(){
c= new Conecta();
String nome=c.procura();
System.out.println(nome);

jtxtFldDescricao.setText(nome);
//jtxtFldDescricao.setText(c.getString.getNome());
JOptionPane.showMessageDialog(this, "Posicionou os dados da tabela principal") ;
};

public void posicionarRegistrosRelacionados(){
JOptionPane.showMessageDialog(this, "Posicionou os dados das tabelas relacionadas") ;

};

public void atribuirValores(){
JOptionPane.showMessageDialog(this, "Atribuiu os valores da tela ao objeto") ;

};

public void atribuirValoresCampoChave(){

JOptionPane.showMessageDialog(this, "Atribuiu os valores chave da tela ao objeto") ;

};

public void habilitarControles(boolean tipo){

jtxtFldCodigo.setEnabled(tipo);
jtxtFldDescricao.setEnabled(tipo);
jtxtFldendereco.setEnabled(tipo);

};
public void preencherValores(){



atribuirValoresCampoChave();
posicionarRegistrosRelacionados();
JOptionPane.showMessageDialog(this, "Atribuiu os valores da tela ao objeto") ;

};

public boolean validarDados_EXCLUIR(int estado) {
erros.clear();



if (jtxtFldDescricao.getText().length() == 0)
erros.add("O código não foi informado");

return mostrarErros(this);

}

public boolean validarDados_SALVAR(int estado) {

erros.clear();

if (jtxtFldCodigo.getText().length() == 0)
erros.add("O código não foi informado");

try{
int aux = Integer.parseInt(jtxtFldCodigo.getText());}
catch (Exception e) {
erros.add("O código deve ser numérico");}


if (jtxtFldDescricao.getText().length() > 50)
erros.add("A descrição não pode ultrapassar 50 caracteres");

return mostrarErros(this);
}

public JanelaPadraoTeste(JFrame janelaAnterior, int tpoAbertura) {
super(janelaAnterior, tpoAbertura);

inicializarFrame();
mostrarFrame();


}

protected void inicializarFrame() {
super.inicializarFrame();

lblCodigo.setBounds(new Rectangle(16,16,220,25)); //Coluna, linha, largura, altura
jtxtFldCodigo.setBounds(new Rectangle(16,36,100,25)); //Coluna, linha, largura, altura
//jtxtFldCodigo.setBounds(new Rectangle(380,36,57,25)); //Coluna, linha, largura, altura

lblDescricao.setBounds(new Rectangle(16,63,100,25)); //Coluna, linha, largura, altura
jtxtFldDescricao.setBounds(new Rectangle(16,83,250,25)); //Coluna, linha, largura, altura

lblendereco.setBounds(new Rectangle(16,110,100,25)); //Coluna, linha, largura, altura
jtxtFldendereco.setBounds(new Rectangle(16,130,250,25)); //Coluna, linha, largura, altura

lblcidade.setBounds(new Rectangle(16,158,100,25));
cidade.setBounds(new Rectangle(16,180,300,25));

/*JLabel lblcidade = new JLabel("Cidade");
JComboBox cidade= new JComboBox("");*/

pnl1.add(lblCodigo);
pnl1.add(jtxtFldCodigo);
pnl1.add(lblDescricao);
pnl1.add(jtxtFldDescricao);
pnl1.add(lblendereco);
pnl1.add(jtxtFldendereco);
pnl1.add(lblcidade);
pnl1.add(cidade);

setTitle("Cadastro Teste");
setSize(500,400); //Largura, Altura
}


public static void main (String args[]) {

JanelaPadraoTeste teste = new JanelaPadraoTeste(null, JanelaPadrao.taNORMAL);

}
}
  import java.sql.*;  

como eu te falei é só trocar o while por um IF nesta parte em negrito


[B][U]while[/U][/B](busca.next()){
setNome(busca.getString("nome"));
//System.out.println(nome);
//jtxtFldDescricao.setText(busca.getString("nome"));

ta valeu vou tentar aqui

Compartilhar este post


Link para o post
Compartilhar em outros sites

Vamos por partes:

  • Na classe conecta, você não precisa de um atributo da classe JanelaPadraoTeste. Se precisar dos campos da tela, melhor passar as Strings como argumento para os métodos.
  • Faltou a classe JanelaPadrao.
  • Fiz um teste para você ver como fica mais ou menos, espero que ajude.

Conecta.java (sem sql, apenas o método mesmo procurando um nome)


package cdh;

import java.util.Arrays;
import java.util.Collection;

public class Conecta {
Collection<String> nomes = Arrays.asList("Eduardo", "Juliana", "Leonardo", "Samuel", "Estela");

public String procurarNomeComecandoCom(String busca) {
String retorno = null;
for (String nome : nomes) {
if (nome.startsWith(busca)) {
retorno = nome;
break;
}
}
return retorno;
}
}


JanelaPadraoTeste.java


package cdh;

import java.awt.GridBagConstraints;
import java.awt.GridBagLayout;
import java.awt.Insets;
import java.awt.event.ActionEvent;

import javax.swing.AbstractAction;
import javax.swing.Action;
import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JOptionPane;
import javax.swing.JTextField;

public class JanelaPadraoTeste extends JFrame {

private static final long serialVersionUID = -3627413591009867455L;

public JanelaPadraoTeste() {
super("Teste");
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
setLayout(new GridBagLayout());
GridBagConstraints c = new GridBagConstraints();
c.insets = new Insets(10, 10, 10, 10);
c.gridx = 0;
c.gridy = 0;
add(new JLabel("Buscar um nome"), c);
c.gridx = 1;
final JTextField txtNome = new JTextField(20);
add(txtNome, c);

// ação do botão
Action procurar = new AbstractAction("Procurar") {
private static final long serialVersionUID = -3658772680251820812L;

@Override
public void actionPerformed(ActionEvent e) {

String busca = txtNome.getText();
Conecta conecta = new Conecta();
String nome = conecta.procurarNomeComecandoCom(busca);
if (nome == null) {
JOptionPane.showMessageDialog(null, "Nome não encontrado");
} else {
JOptionPane.showMessageDialog(null, "Nome encontrado: " + nome);
}
}
};
JButton btnProcurar = new JButton(procurar);
c.fill = GridBagConstraints.HORIZONTAL;
c.gridx = 0;
c.gridy = 2;
c.gridwidth = 2;
add(btnProcurar, c);

pack();
setVisible(true);
}

public static void main(String[] args) {
new JanelaPadraoTeste();
}

}

Compartilhar este post


Link para o post
Compartilhar em outros sites
Vamos por partes:

  • Na classe conecta, você não precisa de um atributo da classe JanelaPadraoTeste. Se precisar dos campos da tela, melhor passar as Strings como argumento para os métodos.
  • Faltou a classe JanelaPadrao.
  • Fiz um teste para você ver como fica mais ou menos, espero que ajude.

Conecta.java (sem sql, apenas o método mesmo procurando um nome)


package cdh;

import java.util.Arrays;
import java.util.Collection;

public class Conecta {
Collection<String> nomes = Arrays.asList("Eduardo", "Juliana", "Leonardo", "Samuel", "Estela");

public String procurarNomeComecandoCom(String busca) {
String retorno = null;
for (String nome : nomes) {
if (nome.startsWith(busca)) {
retorno = nome;
break;
}
}
return retorno;
}
}


JanelaPadraoTeste.java


package cdh;

import java.awt.GridBagConstraints;
import java.awt.GridBagLayout;
import java.awt.Insets;
import java.awt.event.ActionEvent;

import javax.swing.AbstractAction;
import javax.swing.Action;
import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JOptionPane;
import javax.swing.JTextField;

public class JanelaPadraoTeste extends JFrame {

private static final long serialVersionUID = -3627413591009867455L;

public JanelaPadraoTeste() {
super("Teste");
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
setLayout(new GridBagLayout());
GridBagConstraints c = new GridBagConstraints();
c.insets = new Insets(10, 10, 10, 10);
c.gridx = 0;
c.gridy = 0;
add(new JLabel("Buscar um nome"), c);
c.gridx = 1;
final JTextField txtNome = new JTextField(20);
add(txtNome, c);

// ação do botão
Action procurar = new AbstractAction("Procurar") {
private static final long serialVersionUID = -3658772680251820812L;

@Override
public void actionPerformed(ActionEvent e) {

String busca = txtNome.getText();
Conecta conecta = new Conecta();
String nome = conecta.procurarNomeComecandoCom(busca);
if (nome == null) {
JOptionPane.showMessageDialog(null, "Nome não encontrado");
} else {
JOptionPane.showMessageDialog(null, "Nome encontrado: " + nome);
}
}
};
JButton btnProcurar = new JButton(procurar);
c.fill = GridBagConstraints.HORIZONTAL;
c.gridx = 0;
c.gridy = 2;
c.gridwidth = 2;
add(btnProcurar, c);

pack();
setVisible(true);
}

public static void main(String[] args) {
new JanelaPadraoTeste();
}

}


import java.awt.event.*;
import javax.swing.*;
import javax.swing.event.*;
import javax.swing.table.*;
import java.net.*;
import java.sql.*;
import java.util.*;
import java.io.*;
import javax.swing.JOptionPane;

public abstract class JanelaPadrao extends JDialog
{


public static final int CANCELAR = 2;

//Tipos de Abertura da Janela
public static final int taNORMAL = 1;
public static final int taPOSICIONADA = 2;
public static final int taINCLUSAO = 3;

//Estados da Janela - N = Inativo, I = Inserindo, A = Alterando, V = Visualizando
public static final int ejINATIVO = 1;
public static final int ejINSERINDO = 2;
public static final int ejALTERANDO = 3;
public static final int ejVISUALIZANDO = 4;

private boolean indAlteracao = true;

protected int tipoAbertura = taNORMAL;
protected int estadoJanela = ejINATIVO;

protected Vector erros;

//Painel com guias
protected JTabbedPane pnlGuias = new JTabbedPane();

//Label utilizado como Barra de Status no rodapé do formulário
protected JLabel statusBar = new JLabel();

//Declaração dos painéis que vão montar o Layout da tela
protected JPanel pnl1 = new JPanel();
protected JPanel pnlPrincipal = new JPanel();

//Barra de ferramentas da janela
protected JToolBar barraFerramentas = new JToolBar();

//Botões da barra de ferramentas
protected JButton btnNovo = new JButton();
protected JButton btnLocalizar = new JButton();
protected JButton btnAlterar = new JButton();
protected JButton btnSalvar = new JButton();
protected JButton btnCancelar = new JButton();
protected JButton btnExcluir = new JButton();
protected JButton btnAjuda = new JButton();

//JButton btnADD = new JButton("Adicionar");
//JTextField Edt1 = new JTextField("");

public JanelaPadrao(JFrame janelaAnterior, int tpoAbertura) //Método de inicialização
{
super(janelaAnterior, true);

tipoAbertura = tpoAbertura;

erros = new Vector();
}

//Método que inicializa o formulário (Inicialização do Frame)
protected void inicializarFrame()
{

//Seta o painel principal como sendo a base para os outros
pnl1.setLayout(null);

pnlPrincipal = (JPanel) this.getContentPane();
pnlPrincipal.setLayout(new BorderLayout());//Define o layout do painel principal

//Define a mensagem do rodapé da página
statusBar.setText("Mensagem");

//Define o texto e as imagens dos botões da barra de ferramentas
btnNovo.setIcon(new ImageIcon("./imagens/novo.gif"));
btnNovo.setToolTipText("Incluir registro");
btnNovo.addActionListener(new ActionListener()
{
public void actionPerformed(ActionEvent e) {
Acao_btnNovo_actionPerformed(e); }
});

btnLocalizar.setIcon(new ImageIcon("./imagens/localizar.gif"));
btnLocalizar.setToolTipText("Localizar registro");
btnLocalizar.addActionListener(new ActionListener()
{
public void actionPerformed(ActionEvent e) {
Acao_btnLocalizar_actionPerformed(e); }
});


btnAlterar.setIcon(new ImageIcon("./imagens/alterar.gif"));
btnAlterar.setToolTipText("Alterar registro");
btnAlterar.addActionListener(new ActionListener()
{
public void actionPerformed(ActionEvent e) {
Acao_btnAlterar_actionPerformed(e); }
});

btnSalvar.setIcon(new ImageIcon("./imagens/salvar.gif"));
btnSalvar.setToolTipText("Salvar alterações no registro");
btnSalvar.addActionListener(new ActionListener()
{
public void actionPerformed(ActionEvent e) {
Acao_btnSalvar_actionPerformed(e); }
});

btnCancelar.setIcon(new ImageIcon("./imagens/cancelar.gif"));
btnCancelar.setToolTipText("Cancela a edição do registro");
btnCancelar.addActionListener(new ActionListener()
{
public void actionPerformed(ActionEvent e) {
Acao_btnCancelar_actionPerformed(e); }
});

btnExcluir.setIcon(new ImageIcon("./imagens/excluir.gif"));
btnExcluir.setToolTipText("Exclui registro atual");
btnExcluir.addActionListener(new ActionListener()
{
public void actionPerformed(ActionEvent e) {
Acao_btnExcluir_actionPerformed(e); }
});

btnAjuda.setIcon(new ImageIcon("./imagens/ajuda.gif"));
btnAjuda.setToolTipText("Ajuda");
btnAjuda.addActionListener(new ActionListener()
{
public void actionPerformed(ActionEvent e) {
Acao_btnAjuda_actionPerformed(e); }
});

//Adiciona os botões à barra de ferramentas
barraFerramentas.add(btnNovo);
barraFerramentas.add(btnLocalizar);
barraFerramentas.addSeparator();
barraFerramentas.add(btnAlterar);
barraFerramentas.add(btnSalvar);
barraFerramentas.add(btnCancelar);
barraFerramentas.addSeparator();
barraFerramentas.add(btnExcluir);
barraFerramentas.addSeparator();
barraFerramentas.add(btnAjuda);

pnlGuias.add(pnl1, "Dados Básicos");

pnlPrincipal.add(statusBar, BorderLayout.SOUTH);
pnlPrincipal.add(pnlGuias, BorderLayout.CENTER);
pnlPrincipal.add(barraFerramentas, BorderLayout.NORTH);

}

//Executado logo depois do InicializarFrame
protected void mostrarFrame()
{
// obtém informações sobre a resolução do monitor
Toolkit tk = Toolkit.getDefaultToolkit();
Dimension tela = tk.getScreenSize();

// posicionamento centralizado da janela
setLocation((tela.width-getWidth())/2, (tela.height-getHeight())/2 );


if (tipoAbertura == taINCLUSAO)
{
btnNovo.setEnabled(false);
btnLocalizar.setEnabled(false);
btnAlterar.setEnabled(false);
btnExcluir.setEnabled(false);
limparCampos();
posicionarRegistrosRelacionados();
habilitarControles(true);
estadoJanela = ejINSERINDO;
}
else if (tipoAbertura == taPOSICIONADA)
{
btnNovo.setEnabled(false);
btnLocalizar.setEnabled(false);
btnSalvar.setEnabled(false);
btnCancelar.setEnabled(false);
limparCampos();
posicionarRegistrosRelacionados();
habilitarControles(true);
estadoJanela = ejVISUALIZANDO;
}
else
{
habilitarControles(false);
limparCampos();
btnSalvar.setEnabled(false);
btnCancelar.setEnabled(false);
btnAlterar.setEnabled(false);
btnExcluir.setEnabled(false);
estadoJanela = ejINATIVO;
}

setVisible(true);
}

//Ação do formulário que fecha o mesmo quando o usuário clicar no X (sair)
protected void processWindowEvent(WindowEvent e)
{
super.processWindowEvent(e);
if (e.getID() == WindowEvent.WINDOW_CLOSING)
{
if (!fechar()) setVisible(true);
}
}

public boolean fechar()
{
int resposta = testaSeDesejaSalvar();

if (resposta != CANCELAR)
{
fecharOuEsconder();
return true;
}
else return false;
}

public int testaSeDesejaSalvar()
{
int resposta = -1;

if ((estadoJanela == ejINSERINDO) || (estadoJanela == ejALTERANDO)) {
resposta = JOptionPane.showConfirmDialog(null, "Deseja salvar as alterações?","Confirma", JOptionPane.YES_NO_CANCEL_OPTION, JOptionPane.QUESTION_MESSAGE);

if (resposta == 0) salvar();
else if (resposta ==1) cancelar();
}

return resposta;
}

public void limparCampos() {
statusBar.setText("Mensagem: ");
}

public abstract void ajuda();
public abstract void fecharOuEsconder();

public abstract boolean inserirRegistro();
public abstract boolean alterarRegistro();

public abstract boolean localizarRegistro();

public abstract boolean excluirRegistro();

public abstract boolean excluirRegistrosRelacionados();

public abstract void posicionarRegistro();
public abstract void posicionarRegistrosRelacionados();

public abstract void atribuirValores();
public abstract void atribuirValoresCampoChave();

public abstract void habilitarControles(boolean tipo);
public abstract void preencherValores();

public abstract boolean validarDados_EXCLUIR(int estado);
public abstract boolean validarDados_SALVAR(int estado);

public void incluir()
{
boolean continuar = false;

if (tipoAbertura == taINCLUSAO)
continuar = true;

if (!continuar)
if (testaSeDesejaSalvar() != CANCELAR) continuar = true;

if (continuar) {

btnNovo.setEnabled(false);
btnAlterar.setEnabled(false);
btnExcluir.setEnabled(false);

limparCampos();

habilitarControles(true);

estadoJanela = ejINSERINDO;

btnSalvar.setEnabled(true);
btnCancelar.setEnabled(true);

indAlteracao = true;
}
}

public void localizar()
{
if (testaSeDesejaSalvar()!=CANCELAR)
{
limparCampos();
habilitarControles(false);

if (localizarRegistro()) {
preencherValores();
estadoJanela = ejVISUALIZANDO;

btnNovo.setEnabled(true);
btnAlterar.setEnabled(true);
btnExcluir.setEnabled(true);

btnSalvar.setEnabled(false);
btnCancelar.setEnabled(false);
}
else {
btnAlterar.setEnabled(false);
btnExcluir.setEnabled(false);

btnSalvar.setEnabled(false);
btnCancelar.setEnabled(false);
}
}
}

public void cancelar() {
habilitarControles(false);
limparCampos();

estadoJanela = ejINATIVO;

btnNovo.setEnabled(true);

btnAlterar.setEnabled(false);
btnSalvar.setEnabled(false);
btnCancelar.setEnabled(false);
btnExcluir.setEnabled(false);


if ((tipoAbertura == taPOSICIONADA) || (tipoAbertura == taINCLUSAO)) fechar();
}

public void salvar()
{
if (indAlteracao) {
if (validarDados_SALVAR(estadoJanela))
{
atribuirValores();
if (estadoJanela == ejALTERANDO) alterarRegistro();
else if (estadoJanela == ejINSERINDO) inserirRegistro();

estadoJanela = ejVISUALIZANDO;
habilitarControles(false);

btnNovo.setEnabled(true);
btnAlterar.setEnabled(true);
btnExcluir.setEnabled(true);

btnSalvar.setEnabled(false);
btnCancelar.setEnabled(false);

if (tipoAbertura == taPOSICIONADA || tipoAbertura == taINCLUSAO) fechar();
}
}
else JOptionPane.showMessageDialog(null, "Este registro não pode ser alterado!") ;
}

public void alterar()
{
if (indAlteracao)
{
if (estadoJanela == ejVISUALIZANDO)
{
btnNovo.setEnabled(false);
btnAlterar.setEnabled(false);

habilitarControles(true);

estadoJanela = ejALTERANDO;

btnSalvar.setEnabled(true);
btnCancelar.setEnabled(true);
btnExcluir.setEnabled(false);

atribuirValoresCampoChave();
}
}
else JOptionPane.showMessageDialog(null, "Este registro não pode ser alterado!") ;
}

public void excluir()
{
if (indAlteracao)
{
if (estadoJanela != ejINATIVO)
{
if (validarDados_EXCLUIR(estadoJanela))
{
if (excluirRegistro())
{
habilitarControles(false);
limparCampos();

estadoJanela = ejINATIVO;

btnAlterar.setEnabled(false);
btnSalvar.setEnabled(false);
btnCancelar.setEnabled(false);
btnExcluir.setEnabled(false);

if (tipoAbertura == taPOSICIONADA) fechar();
}
}
}
}
else JOptionPane.showMessageDialog(null, "Este registro não pode ser alterado!") ;

}

public boolean mostrarErros(JanelaPadrao obj) {
boolean retorno = true;

if (erros.size() > 0)
{
JanelaErros je = new JanelaErros(obj, erros);

retorno = false;
}

return retorno;
}

public void Acao_btnNovo_actionPerformed(ActionEvent e) { incluir(); }
public void Acao_btnLocalizar_actionPerformed(ActionEvent e) { localizar(); }
public void Acao_btnAlterar_actionPerformed(ActionEvent e) { alterar(); }
public void Acao_btnSalvar_actionPerformed(ActionEvent e) { salvar(); }
public void Acao_btnCancelar_actionPerformed(ActionEvent e) { cancelar(); }
public void Acao_btnExcluir_actionPerformed(ActionEvent e) { excluir(); }
public void Acao_btnAjuda_actionPerformed(ActionEvent e) { ajuda(); }

}



import java.awt.*;

cara desculpa esqueci de postar a janelapadrao, porém meu professor disse q nao posso mexer nela, devo programar um classe 'conecta' q faz a conexão e insert, delete, update e tal e chamar esses metodos pela classe janelapadraoteste nos botões...

Compartilhar este post


Link para o post
Compartilhar em outros sites

Bom, mesmo assim a ideia não muda. Minha ideia é passar o nome para busca como argumento, e retornar a String. Assim você pode também testar sua classe separadamente da tela, só fazer uma função main que chame a classe e procure um nome qualquer, e imprima o resultado na tela.

Para voltar vazio, acho que não encontrou o nome no BD. O seu println imprime o nome encontrado ali?

 while(busca.next()){
setNome(busca.getString("nome"));
System.out.println("encontrado " + nome); // retire o comentário pra ver se chega aqui
//jtxtFldDescricao.setText(busca.getString("nome"));

e esse outro println, o que mostra na tela?

 public void posicionarRegistro(){    
c= new Conecta();
String nome = c.procura();
System.out.println("posicionando " + nome);

Coloquei uma string na frente para diferenciar

Compartilhar este post


Link para o post
Compartilhar em outros sites
Bom, mesmo assim a ideia não muda. Minha ideia é passar o nome para busca como argumento, e retornar a String. Assim você pode também testar sua classe separadamente da tela, só fazer uma função main que chame a classe e procure um nome qualquer, e imprima o resultado na tela.

Para voltar vazio, acho que não encontrou o nome no BD. O seu println imprime o nome encontrado ali?

 while(busca.next()){
setNome(busca.getString("nome"));
System.out.println("encontrado " + nome); // retire o comentário pra ver se chega aqui
//jtxtFldDescricao.setText(busca.getString("nome"));

e esse outro println, o que mostra na tela?

 public void posicionarRegistro(){    
c= new Conecta();
String nome = c.procura();
System.out.println("posicionando " + nome);

Coloquei uma string na frente para diferenciar

sim a busca esta sendo feita corretamente e esta imprimindo, o problema é q o resultado nao chega no posicionar registro, ou chega em branco la por algum motivo... estou tentando fazer algo assim agora ve se entende vou mandar o codigo


int cont=0;
ResultSet busca = null;
try {
Class.forName(STR_DRIVER).newInstance();
try {
con = DriverManager.getConnection(STR_CON,USER, PASSWORD);
System.out.println("conectado");
try {
try {
PreparedStatement stm = con.prepareStatement("SELECT nome FROM CADASTRO where nome = ?");
stm.setString(1, getNome());
busca= stm.executeQuery();

while(busca.next()){
setNome(busca.getString("nome"));
System.out.println(nome);
cont++;

} }catch (Exception ex) {
System.out.println("\nErro no resultset!\n" + ex);
}
} catch (Exception ex) {
System.out.println("\nErro no statement!");
}
} catch (Exception ex) {
System.out.println("\nErro no connection!");
}
} catch (Exception ex) {
System.out.println("\nDriver nao pode ser carregado!");
}
if (cont > 0){
return true;
}else {
return false;
}
}
public boolean procura(){

tipo pensei em botar um cont, ai se o encontrar algo no banco o cont fica = 1 ai retorna isso, ai no posicionar registro to tentando só fazer ler esse cont, e se for =1 escrever no jtextfield o valor do joptionpane... tipo assim


String localiza = JOptionPane.showInputDialog("Digite um nome para procura:");
c = new Conecta();
c.setNome(localiza);
c.procura();

JOptionPane.showMessageDialog(this, "Localizou") ;
return true;
 public boolean localizarRegistro() {


c= new Conecta();
//c.procura();
if (c.procura() == true)
jtxtFldDescricao.setText(localizarRegistro.localiza);
else
jtxtFldDescricao.setText("");
JOptionPane.showMessageDialog(this, "Posicionou os dados da tabela principal") ;
};
public void posicionarRegistro(){

acha q é uma boa ideia ou nao??? ja q é uma procura simples no banco ai pensei em achar o nome retornar verdadeiro, testar se é verdadeiro se for escreve o valor do joptionpane mesmo sem pegar o q esta no procura...

Compartilhar este post


Link para o post
Compartilhar em outros sites

Como o nome a ser encontrado é o mesmo funciona, pode fazer assim sim.

Mas faça o seguinte... tente alterar essa descrição sem chamar a classe de conexão, apenas clicando no botão ele copie o nome a ser buscado nesse campo, e veja se altera... mais tarde vou fazer uma simulação dessa classe...

boa sorte

Compartilhar este post


Link para o post
Compartilhar em outros sites
Como o nome a ser encontrado é o mesmo funciona, pode fazer assim sim.

Mas faça o seguinte... tente alterar essa descrição sem chamar a classe de conexão, apenas clicando no botão ele copie o nome a ser buscado nesse campo, e veja se altera... mais tarde vou fazer uma simulação dessa classe...

boa sorte

cara muito obrigado por toda a ajuda. consegui resolver na 'gambiara' hahahah mas ta funcionando é o q importa por enquanto

Compartilhar este post


Link para o post
Compartilhar em outros sites

Makel por gentileza posta sua solução encontrada.

Compartilhar este post


Link para o post
Compartilhar em outros sites
Makel por gentileza posta sua solução encontrada.


import java.awt.*;

public class JanelaPadraoTeste extends JanelaPadrao {


Conecta c;
JLabel lblCodigo = new JLabel("CPF");
JLabel lblDescricao = new JLabel("Nome");
JLabel lblcidade = new JLabel("Cidade");
JLabel lblendereco = new JLabel("Endereço");

JTextField jtxtFldCodigo = new JTextField("");
JTextField jtxtFldDescricao = new JTextField("");
JTextField jtxtFldendereco = new JTextField("");
JComboBox cidade= new JComboBox();
String localiza, update;

public void ajuda() {
JOptionPane.showMessageDialog(this, "Ajuda em construção, aguarde atualizações...") ;
}

public void fecharOuEsconder() {
System.exit(0);
}

public boolean inserirRegistro() {
int response = JOptionPane.showConfirmDialog(null, "Deseja inserir o registro?", "confirmação", JOptionPane.YES_NO_OPTION);

if (response == JOptionPane.YES_OPTION){
c = new Conecta();
c.setNome(jtxtFldDescricao.getText());
c.setCpf(jtxtFldCodigo.getText());
c.setEndereco(jtxtFldendereco.getText());
c.insere();
JOptionPane.showMessageDialog(this, "Inseriu") ; }
else
JOptionPane.showMessageDialog(this, "registro não gravado") ;
return true;
}

public boolean alterarRegistro() {
update = JOptionPane.showInputDialog("Digite um nome para procura e alterar no banco5:");
c = new Conecta();
c.setNome_procura(update);
//jtxtFldDescricao.setText(update);
int response = JOptionPane.showConfirmDialog(null, "Deseja alterar o registro?", "confirmação", JOptionPane.YES_NO_OPTION);

if (response == JOptionPane.YES_OPTION){
c.setNome(jtxtFldDescricao.getText());
c.setCpf(jtxtFldCodigo.getText());
c.setEndereco(jtxtFldendereco.getText());
c.editar();
JOptionPane.showMessageDialog(this, "Alterou") ; }
else
JOptionPane.showMessageDialog(this, "registro nao alterado") ;
return true;
}

public boolean localizarRegistro() {
localiza = JOptionPane.showInputDialog("Digite um nome para procura:");
c = new Conecta();
c.setNome_procura(localiza);
c.procura();

if (c.procura() == true){
jtxtFldDescricao.setText(localiza);}
else
jtxtFldDescricao.setText("");
JOptionPane.showMessageDialog(this, "Localizou") ;
return true;

}
public boolean excluirRegistro() {
int response = JOptionPane.showConfirmDialog(null, "Deseja excluir o registro?", "confirmação", JOptionPane.YES_NO_OPTION);

if (response == JOptionPane.YES_OPTION){
c = new Conecta();
c.setNome(jtxtFldDescricao.getText());
c.excluir();
JOptionPane.showMessageDialog(this, "Excluiu o registro principal") ; }
else
JOptionPane.showMessageDialog(this, "registro nao foi excluido") ;
return true;
}

public boolean excluirRegistrosRelacionados() {
JOptionPane.showMessageDialog(this, "Excluiu os registros relacionados") ;
return true;
}

public void posicionarRegistro(){
//update = JOptionPane.showInputDialog("Digite um nome para procura e alterar no banco4:");
JOptionPane.showMessageDialog(this, "Posicionou os dados da tabela principal") ;
};

public void posicionarRegistrosRelacionados(){
JOptionPane.showMessageDialog(this, "Posicionou os dados das tabelas relacionadas") ;

};

public void atribuirValores(){

JOptionPane.showMessageDialog(this, "Atribuiu os valores da tela ao objeto") ;

};

public void atribuirValoresCampoChave(){
c = new Conecta();
c.setNome_procura(jtxtFldDescricao.getText());
JOptionPane.showMessageDialog(this, "Atribuiu os valores chave da tela ao objeto") ;

};

public void habilitarControles(boolean tipo){

jtxtFldCodigo.setEnabled(tipo);
jtxtFldDescricao.setEnabled(tipo);
jtxtFldendereco.setEnabled(tipo);

};
public void preencherValores(){



atribuirValoresCampoChave();
posicionarRegistrosRelacionados();
JOptionPane.showMessageDialog(this, "Atribuiu os valores da tela ao objeto") ;

};

public boolean validarDados_EXCLUIR(int estado) {
erros.clear();



if (jtxtFldDescricao.getText().length() == 0)
erros.add("O código não foi informado");

return mostrarErros(this);

}

public boolean validarDados_SALVAR(int estado) {

erros.clear();

if (jtxtFldCodigo.getText().length() == 0)
erros.add("O código não foi informado");

try{
int aux = Integer.parseInt(jtxtFldCodigo.getText());}
catch (Exception e) {
erros.add("O código deve ser numérico");}


if (jtxtFldDescricao.getText().length() > 50)
erros.add("A descrição não pode ultrapassar 50 caracteres");

return mostrarErros(this);
}

public JanelaPadraoTeste(JFrame janelaAnterior, int tpoAbertura) {
super(janelaAnterior, tpoAbertura);

inicializarFrame();
mostrarFrame();


}

protected void inicializarFrame() {
super.inicializarFrame();

lblCodigo.setBounds(new Rectangle(16,16,220,25)); //Coluna, linha, largura, altura
jtxtFldCodigo.setBounds(new Rectangle(16,36,100,25)); //Coluna, linha, largura, altura
//jtxtFldCodigo.setBounds(new Rectangle(380,36,57,25)); //Coluna, linha, largura, altura

lblDescricao.setBounds(new Rectangle(16,63,100,25)); //Coluna, linha, largura, altura
jtxtFldDescricao.setBounds(new Rectangle(16,83,250,25)); //Coluna, linha, largura, altura

lblendereco.setBounds(new Rectangle(16,110,100,25)); //Coluna, linha, largura, altura
jtxtFldendereco.setBounds(new Rectangle(16,130,250,25)); //Coluna, linha, largura, altura

lblcidade.setBounds(new Rectangle(16,158,100,25));
cidade.setBounds(new Rectangle(16,180,300,25));

/*JLabel lblcidade = new JLabel("Cidade");
JComboBox cidade= new JComboBox("");*/

pnl1.add(lblCodigo);
pnl1.add(jtxtFldCodigo);
pnl1.add(lblDescricao);
pnl1.add(jtxtFldDescricao);
pnl1.add(lblendereco);
pnl1.add(jtxtFldendereco);
pnl1.add(lblcidade);
pnl1.add(cidade);

setTitle("Cadastro Teste");
setSize(500,400); //Largura, Altura
}


public static void main (String args[]) {

JanelaPadraoTeste teste = new JanelaPadraoTeste(null, JanelaPadrao.taNORMAL);

}
}

import javax.swing.*;


import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;
import java.util.*;

public class Conecta {

JanelaPadraoTeste janela;

private String STR_DRIVER = "com.mysql.jdbc.Driver";
private String DATABASE = "cadastro";
private String IP = "localhost";
private String STR_CON = "jdbc:mysql://" + IP +"/"+ DATABASE;
private String USER = "root";
private String PASSWORD = "123456";

Connection con;
private String cpf;
private String nome;
private String endereco;
private String nome_procura;

public String getCpf() {
return cpf;
}
public void setCpf(String cpf) {
this.cpf = cpf;
}
public String getNome() {
return nome;
}
public void setNome(String nome) {
this.nome = nome;
}
public String getNome_procura(){
return nome_procura;
}
public void setNome_procura(String nome_procura){
this.nome_procura = nome_procura;
}
public String getEndereco() {
return endereco;
}
public void setEndereco(String endereco) {
this.endereco = endereco;
}
/*public Connection getConexao(){
Connection con = null;
try {
Class.forName(STR_DRIVER);
con = DriverManager.getConnection(STR_CON, USER, PASSWORD);
System.out.println("[ConnectionManager]: Obtendo conexao");

} catch (ClassNotFoundException e) {
String errorMsg = "Driver nao encontrado";
} catch (SQLException e) {
String errorMsg = "Erro ao obter a conexao";
}
return con;
}

public void closeAll(Connection con) {
try {
if (con != null) {
con.close();
}
} catch (Exception e) {
String errorMsg = "Nao foi possivel fechar a conexao com o banco";
}
}

public void closeAll(Connection con, Statement stmt, ResultSet rs) {
try {
if (con != null || stmt != null) {
closeAll(con, stmt);
}
if (rs != null) {
rs.close();
}
} catch (Exception e) {
String errorMsg = "Nao foi possivel fechar o resultSet do banco";
}
}

public void closeAll(Connection con, Statement stmt) {
try {
if (con != null) {
closeAll(con);
}
if (stmt != null) {
stmt.close();
}
} catch (Exception e) {
String errorMsg = "Nao foi possivel fechar a statement do banco";
}
} */

/*public String retorna(){
lista <String> r = new ArrayList<String>();
// r.add(getNome_procura);
}*/

public void insere() {
try {
Class.forName(STR_DRIVER).newInstance();
try {
con = DriverManager.getConnection(STR_CON,USER, PASSWORD);
System.out.println("conectado");
try {
try {
PreparedStatement stm = con.prepareStatement("insert into CADASTRO (CPF, NOME, ENDERECO) values (?, ?, ?)");
stm.setString(1,getCpf());
stm.setString(2,getNome());
stm.setString(3,getEndereco());
stm.executeUpdate();
} catch (Exception ex) {
System.out.println("\nErro no resultset!\n" + ex);
}
} catch (Exception ex) {
System.out.println("\nErro no statement!");
}
} catch (Exception ex) {
System.out.println("\nErro no connection!");
}
} catch (Exception ex) {
System.out.println("\nDriver nao pode ser carregado!");
}

}
public boolean procura(){
int cont=0;
ResultSet busca = null;
try {
Class.forName(STR_DRIVER).newInstance();
try {
con = DriverManager.getConnection(STR_CON,USER, PASSWORD);
System.out.println("conectado");
try {
try {
PreparedStatement stm = con.prepareStatement("SELECT nome FROM CADASTRO where nome = ?");
stm.setString(1, getNome_procura());
busca= stm.executeQuery();

while(busca.next()){
setNome_procura(busca.getString("nome"));
cont++;
} }catch (Exception ex) {
System.out.println("\nErro no resultset!\n" + ex);
}
} catch (Exception ex) {
System.out.println("\nErro no statement!");
}
} catch (Exception ex) {
System.out.println("\nErro no connection!");
}
} catch (Exception ex) {
System.out.println("\nDriver nao pode ser carregado!");
}
if (cont > 0){
return true;
}else {
return false;
}
}
public void excluir(){
try {
Class.forName(STR_DRIVER).newInstance();
try {
con = DriverManager.getConnection(STR_CON,USER, PASSWORD);
try {
//stmt.executeUpdate("DELETE FROM CADASTRO where nome =(?)");
PreparedStatement stm = con.prepareStatement("DELETE FROM cadastro WHERE nome = ?");
stm.setString(1, getNome());
stm.executeUpdate();
System.out.println("excluido");

} catch (Exception ex) {
System.out.println("\nErro no statement!");
}
} catch (Exception ex) {
System.out.println("\nErro no connection!");
}
} catch (Exception ex) {
System.out.println("\nDriver nao pode ser carregado!"); }
}

public void editar(){
try {
Class.forName(STR_DRIVER).newInstance();
try {
con = DriverManager.getConnection(STR_CON,USER, PASSWORD);
try {
PreparedStatement stm = con.prepareStatement("UPDATE CADASTRO SET NOME = ?, CPF = ?, ENDERECO = ? WHERE nome = ?");
stm.setString(1,getNome());
stm.setString(2,getCpf());
stm.setString(3,getEndereco());
stm.setString(4,getNome_procura());
System.out.println(getNome_procura());
stm.executeUpdate();
System.out.println("atualizado");

} catch (Exception ex) {
System.out.println("\nErro no statement!");
}
} catch (Exception ex) {
System.out.println("\nErro no connection!");
}
} catch (Exception ex) {
System.out.println("\nDriver nao pode ser carregado!"); }
}
};



    import java.sql.*;

esta ai mas como disse foi na gambiarra, nao seria a forma correta de fazer tenho certeza

Compartilhar este post


Link para o post
Compartilhar em outros sites

Caso o autor do tópico necessite, o mesmo será reaberto, para isso deverá entrar em contato com a moderação solicitando o desbloqueio.

Compartilhar este post


Link para o post
Compartilhar em outros sites
Visitante
Este tópico está impedido de receber novos posts.
Entre para seguir isso  





Sobre o Clube do Hardware

No ar desde 1996, o Clube do Hardware é uma das maiores, mais antigas e mais respeitadas publicações sobre tecnologia do Brasil. Leia mais

Direitos autorais

Não permitimos a cópia ou reprodução do conteúdo do nosso site, fórum, newsletters e redes sociais, mesmo citando-se a fonte. Leia mais

×