Preenchimento

2 respostas
CarlosFontana

Boa noite pessoal, tenho um método getPk na classe de persistencia PersistenciaEstado, e quero que na classe CadastroEstado, onde está o atributo CodigoEstado receba um valor para ser gravado no banco. Quero pegar o valor que é gerado automaticamente lá do método getPk que fica na classe de persistencia PersistenciaEstado. Tentei o seguinte:

public class CadastroEstado extends Cadastro {

public PersistenciaEstado estado = new PersistenciaEstado();
public NossoJTextField CodigoEstado;
public NossoJTextField NomeEstado;
public NossoJTextField UFEstado;
public JTable Tabela;
public JScrollPane jsp;

public CadastroEstado() {
  super ("Cadastro de Estados");
  preencheTabela();

}

public void incluir() {

super.incluir();

habilitaCampos(true);

CodigoEstado = estado.getPk();

}

… o restante do código está certo, somente essa linha que está em negrito que dá erro.

Como devo fazer?

2 Respostas

AlexandreGama

CarlosFontana,

Uma dica: use a tag Code para inserir códigos. Facilita bastante a visualização:

public class CadastroEstado extends Cadastro { 

public PersistenciaEstado estado = new PersistenciaEstado(); 
public NossoJTextField CodigoEstado; 
public NossoJTextField NomeEstado; 
public NossoJTextField UFEstado; 
public JTable Tabela; 
public JScrollPane jsp; 

public CadastroEstado() { 
super ("Cadastro de Estados"); 
preencheTabela(); 

public void incluir() { 
super.incluir(); 
habilitaCampos(true); 
CodigoEstado = estado.getPk(); 
}
}

Qual é o tipo que o seu método estado.getPk() retorna? Pelo que vi você está tentando atribuir diretamente ao JTextField.
Você não poderia simplesmente fazer NossoJTextField.setText(estado.getPk()) ?
Se possível posta o código do erro.

Abraços!

CarlosFontana

Obrigado pela atenção, aqui vai o código das duas classes:

package Persistencia;

import java.sql.PreparedStatement;    
import java.sql.ResultSet;
import java.util.Vector;
import javax.swing.JOptionPane;

public class PersistenciaEstado {

    private int codEstado;
    private String nomeEstado;
    private String ufEstado;
    public static final String INSERTSQL = "INSERT INTO ESTADO VALUES (?,?,?)";
    public static final String UPDATESQL = "UPDATE ESTADO SET NOME_ESTADO = ?, UF_ESTADO = ? WHERE COD_ESTADO = ?";
    public static final String DELETESQL = "DELETE FROM ESTADO WHERE COD_ESTADO = ?";
    public static final String SELECTSQL = "SELECT * FROM ESTADO WHERE COD_ESTADO = ?";
    public static final String GETPKSQL = "SELECT GEN_ID(GEN_ESTADO, 1) FROM RDB$DATABASE";
    public static final String COMBOBOXSQL = "SELECT COD_ESTADO, NOME_ESTADO FROM ESTADO ORDER BY NOME_ESTADO";
    public static final String SELECTALLSQL = "SELECT * FROM ESTADO ORDER BY COD_ESTADO";

    public int getCodEstado() {
        return codEstado;
    }

    public void setCodEstado(int codEstado) {
        this.codEstado = codEstado;
    }

    public String getNomeEstado() {
        return nomeEstado;
    }

    public void setNomeEstado(String nomeEstado) {
        this.nomeEstado = nomeEstado;
    }

    public String getUfEstado() {
        return ufEstado;
    }

    public void setUfEstado(String ufEstado) {
        this.ufEstado = ufEstado;
    }

    public boolean insert() {
        try {
            PreparedStatement ps = BancoDados.getConexao().prepareStatement(INSERTSQL);
            if (getPk()) {
                ps.setInt(1, codEstado);
                ps.setString(2, nomeEstado);
                ps.setString(3, ufEstado);
                return ps.execute();
            } else {
                return false;
              }
        } catch (Exception e) {
            JOptionPane.showMessageDialog(null, "Erro ao inserir Estado");
            return false;
          }
    }

    public boolean update() {
        try {
            PreparedStatement ps = BancoDados.getConexao().prepareStatement(UPDATESQL);
            ps.setString(1, nomeEstado);
            ps.setString(2, ufEstado);
            ps.setInt(3, codEstado);
            return ps.execute();
        } catch (Exception e) {
            JOptionPane.showMessageDialog(null, "Erro ao atualizar Estado");
            return false;
          }
    }

    public boolean delete() {
        try {
            PreparedStatement ps = BancoDados.getConexao().prepareStatement(DELETESQL);
            ps.setInt(1, codEstado);
            return ps.execute();
            } catch (Exception e) {
            JOptionPane.showMessageDialog(null, "Erro ao excluir Estado");
            return false;
          }
    }

    public boolean select() {
        try {
            PreparedStatement ps = BancoDados.getConexao().prepareStatement(SELECTSQL);
            ps.setInt(1, codEstado);
            ResultSet rs = ps.executeQuery();
            if (rs.next()) {
                nomeEstado = rs.getString("NOME_ESTADO");
                ufEstado = rs.getString("UF_ESTADO");
                return true;
            } else {
                return false;
              }
        } catch (Exception e) {
            JOptionPane.showMessageDialog(null, "Erro ao consultar Estado");
            return false;
          }
    }

    public boolean getPk() {
        try {
            PreparedStatement ps = BancoDados.getConexao().prepareStatement(GETPKSQL);
            ResultSet rs = ps.executeQuery();
            if (rs.next()) {
                codEstado = rs.getInt(1);
                return true;
            } else {
                return false;
              }
        } catch (Exception e) {
            JOptionPane.showMessageDialog(null, "Erro ao obter código do Estado");
            return false;
          }
    }
}



package Cadastro;

import java.awt.Dimension;
import java.awt.GridBagConstraints;          
import javax.swing.JScrollPane;
import javax.swing.JTable;
import Persistencia.PersistenciaEstado;
import java.util.Vector;
import javax.swing.JOptionPane;
import javax.swing.table.DefaultTableModel;

public class CadastroEstado extends Cadastro {

    public PersistenciaEstado estado = new PersistenciaEstado();
    public NossoJTextField CodigoEstado;
    public NossoJTextField NomeEstado;
    public NossoJTextField UFEstado;
    public JTable Tabela;
    public JScrollPane jsp;

    public CadastroEstado() {
      super ("Cadastro de Estados");
      preencheTabela();
   }

    public void incluir() {
        super.incluir();
        habilitaCampos(true);
    }

    public void excluir() {
        super.excluir();
        habilitaCampos(true);
    }

    public void alterar() {
        super.alterar();
        habilitaCampos(true);
    }
   
  public void DefineTela() {
      CodigoEstado = new NossoJTextField (5, true);
      NomeEstado = new NossoJTextField (40, true);
      UFEstado = new NossoJTextField (2, true);
      configuracaoComponentes (0, 1, 1, 1, GridBagConstraints.WEST, CodigoEstado, "Código");
      configuracaoComponentes (0, 10, 1, 1, GridBagConstraints.WEST, NomeEstado, "Nome");
      configuracaoComponentes (0, 15, 1, 1, GridBagConstraints.WEST, UFEstado, "UF");
      
      String[] colunas = new String[] {"Código", "Nome", "UF"};
      String[][] dados = new String[][] {

      };

      Tabela = new JTable(dados, colunas);
      jsp = new JScrollPane(Tabela);
      jsp.setPreferredSize(new Dimension (565,250));
      configuracaoComponentes(50,0,0,0, GridBagConstraints.WEST,jsp, "");
  }

  public void setPersistencia() {
      estado.setCodEstado(Integer.parseInt(CodigoEstado.getText()));
      estado.setNomeEstado(NomeEstado.getText());
      estado.setUfEstado(UFEstado.getText());
  }

  public boolean incluirBD() {
      setPersistencia();
      estado.insert();
      JOptionPane.showMessageDialog(null, "Estado Cadastro!");
      preencheTabela();
      return true;
  }
  
  public boolean alterarBD() {
      setPersistencia();
      estado.update();
      JOptionPane.showMessageDialog(null, "Estado Alterado!");
      preencheTabela();
      return true;
  }

  public boolean excluirBD() {
      setPersistencia();
      estado.delete();
      JOptionPane.showMessageDialog(null, "Estado Excluído!");
      preencheTabela();
      return true;
  }

  public void preencheTabela() {
      DefaultTableModel dtm = new DefaultTableModel();
      Tabela.setModel(dtm);
      dtm.addColumn("Código");
      dtm.addColumn("Nome");
      dtm.addColumn("UF");
      while(dtm.getRowCount() > 0)
          dtm.removeRow(0);
      
      Vector linhas = estado.pegaDados();
      if (linhas != null) {
         for (int i = 0; i < linhas.size(); i++)
             dtm.addRow((Vector) linhas.get(i));
      }
  }
}
Criado 24 de outubro de 2010
Ultima resposta 25 de out. de 2010
Respostas 2
Participantes 2