Preenchimento

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?

CarlosFontana,

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

[code]
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();
}
} [/code]

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!

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

[code]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));
  }

}
}[/code]