bom dia,
Estou conseguindo refletir JtextFields da Jtable, mas os JcomboBox não
Tabelas:
CREATE TABLE tbl_estado(
estado_id INT(20) AUTO_INCREMENT,
estado_sg CHAR(3),
estado_nome VARCHAR(50),
PRIMARY KEY (estado_id)
);
INSERT INTO tbl_estado (estado_sg, estado_nome) VALUES ('SP', 'Acre');
INSERT INTO tbl_estado (estado_sg, estado_nome) VALUES ('AL', 'Alagoas');
CREATE TABLE tbl_ddd(
ddd_id INT(20) AUTO_INCREMENT,
ddd_ddd VARCHAR(5),
ddd_estsigla VARCHAR(50),
PRIMARY KEY (ddd_id)
);
INSERT INTO tbl_ddd (ddd_ddd, ddd_estsigla) VALUES ('12', 'SP');
INSERT INTO tbl_ddd (ddd_ddd, ddd_estsigla) VALUES ('82', 'AL');
INSERT INTO tbl_ddd (ddd_ddd, ddd_estsigla) VALUES ('92', 'AM');
CREATE TABLE tbl_corretor(
corr_id INT(20) AUTO_INCREMENT,
corr_nome VARCHAR(100),
corr_cpf VARCHAR(20),
corr_endereco VARCHAR(255),
corr_cep VARCHAR(12),
corr_estado_id INT(20),
corr_ddd_id INT(20),
corr_tel VARCHAR(20),
PRIMARY KEY (corr_id),
FOREIGN KEY (corr_estado_id)REFERENCES tbl_estado(estado_id),
FOREIGN KEY (corr_ddd_id)REFERENCES tbl_ddd(ddd_id)
);
Aqui carrega normalmente no WorkBench
SELECT
ta.corr_id,
ta.corr_nome,
ta.corr_cpf,
ta.corr_endereco,
ta.corr_cep,
tb.estado_sg,
tc.ddd_ddd,
ta.corr_tel
FROM
tbl_corretor ta
INNER JOIN
tbl_estado tb ON (ta.corr_estado_id = tb.estado_id)
INNER JOIN
tbl_ddd tc ON (ta.corr_ddd_id = tc.ddd_id);
Saída:
corr_id corr_nome corr_cpf corr_endereco corr_cep
1 mario batata 456 r feliz 4444
2 joaquim 55547 r andrades 20030500
estado_sg ddd_ddd corr_tel
sp 12 5252222
sp 12 9998888
Java
public class ModelEstado {
private Integer id;
private String estadoSiglaModelEstado;
private String estadoNome;
public Integer getId() {
return id;
}
public void setId(Integer id) {
this.id = id;
}
public String getEstadoSiglaModelEstado() {
return estadoSiglaModelEstado;
}
public void setEstadoSiglaModelEstado(String estadoSiglaModelEstado) {
this.estadoSiglaModelEstado = estadoSiglaModelEstado;
}
public String getEstadoNome() {
return estadoNome;
}
public void setEstadoNome(String estadoNome) {
this.estadoNome = estadoNome;
}
}
public class ModelDdd {
private Integer id;
private Integer dddModelDdd;
private String estadoSigla;
public Integer getId() {
return id;
}
public void setId(Integer id) {
this.id = id;
}
public Integer getDddModelDdd() {
return dddModelDdd;
}
public void setDddModelDdd(Integer dddModelDdd) {
this.dddModelDdd = dddModelDdd;
}
public String getEstadoSigla() {
return estadoSigla;
}
public void setEstadoSigla(String estadoSigla) {
this.estadoSigla = estadoSigla;
}
}
View
public FRMCorretor() {
initComponents();
DefaultTableModel modelo = (DefaultTableModel) jTableCorretor.getModel();
jTableCorretor.setRowSorter(new TableRowSorter(modelo));
readJTable(daoCorretor.getSqlCorretor());
estados = new HashMap<>();
ddds = new HashMap<>();
// filling the jcomboBox
fillJcomboBoxEstado();
fillJcomboBoxDDD();
TableCellRenderer renderer = new JTableAlternateColors04();
jTableCorretor.setDefaultRenderer(Object.class, renderer);
jTableCorretor.setSelectionMode(ListSelectionModel.SINGLE_SELECTION);
public void fillJcomboBoxEstado() {
Connection con = ConnectionFactory.getConnnection();
PreparedStatement pstmt = null;
ResultSet rs = null;
try {
String sql = daoCorretor.getSqlEstados(); // could be "SELECT field FROM a table"
pstmt = con.prepareStatement(sql);
rs = pstmt.executeQuery();
while (rs.next()) {
String estado_sg = rs.getString("estado_sg"); // a certain field from a table
jComboBoxEstado.addItem(estado_sg);
ModelEstado estado = new ModelEstado();
estado.setId(rs.getInt("estado_id"));
estado.setEstadoSiglaModelEstado(rs.getString("estado_sg"));
estado.setEstadoNome(rs.getString("estado_nome"));
estados.put(estado.getEstadoSiglaModelEstado(), estado);
}
} catch (Exception ex) {
JOptionPane.showMessageDialog(null, ex);
}
ConnectionFactory.closeConnection(con, pstmt, rs);
}// end fillJcomboBoxEstado
public void fillJcomboBoxDDD() {
Connection con = ConnectionFactory.getConnnection();
PreparedStatement pstmt = null;
ResultSet rs = null;
try {
String sql = daoCorretor.getSqlDDD(); // could be "SELECT field FROM a table"
pstmt = con.prepareStatement(sql);
rs = pstmt.executeQuery();
while (rs.next()) {
String ddd_ddd = rs.getString("ddd_ddd"); // a certain field from a table
jComboBoxDDD.addItem(ddd_ddd);
ModelDdd ddd = new ModelDdd();
ddd.setId(rs.getInt("ddd_id"));
ddd.setEstadoSigla(rs.getString("ddd_estsigla"));
ddd.setDddModelDdd(rs.getInt("ddd_ddd"));
ddds.put(ddd.getDddModelDdd(), ddd);
}
} catch (Exception ex) {
JOptionPane.showMessageDialog(null, ex);
}
ConnectionFactory.closeConnection(con, pstmt, rs);
}// end fillJcomboBoxDDD
.
.
.
private void loadFields(String sql) {
Connection con = ConnectionFactory.getConnnection();
PreparedStatement stmt = null;
ResultSet rs = null;
try {
stmt = con.prepareStatement(sql);
rs = stmt.executeQuery();
while (rs.next()) {
// tudo entre "" vem direto do codigo sql, "id_login" vem
// da tabela tbl_login
jTextFieldId.setText(String.valueOf(rs.getInt("corr_id")));
// keep_id = Integer.parseInt(jTextFieldId.getText());
jTextFieldNome.setText(rs.getString("corr_nome"));
jTextFieldCPF.setText(rs.getString("corr_cpf"));
jTextFieldEndereco.setText(rs.getString("corr_endereco"));
jTextFieldCEP.setText(rs.getString("corr_cep"));
// NÃO utilizar campo "corr_ddd_id" da tabela tbl_corretor,
// USE o campo "ddd_ddd" da tabela tbl_ddd
jTextFieldTel.setText(rs.getString("corr_tel"));
//JcomboBox
jComboBoxEstado.setSelectedItem(rs.getString("estado_sg"));
// NÃO utilizar campo "corr_estado_id" da tabela tbl_corretor,
// USE o campo "estado_sg" da tabela tbl_estado
jComboBoxDDD.setSelectedItem(rs.getString("ddd_ddd"));
}
keep_id = Integer.parseInt(jTextFieldId.getText());
} catch (Exception e) {
e.getMessage();
} finally {
ConnectionFactory.closeConnection(con, stmt, rs);
}
}
Dao de Estado e DDD
public List<ModelCorretor> read(String sql) {
Connection con = ConnectionFactory.getConnnection();
PreparedStatement pstmt = null;
ResultSet rs = null;
List<ModelCorretor> modelCorretores = new ArrayList<>();
try {
pstmt = con.prepareStatement(sql);
rs = pstmt.executeQuery();
while (rs.next()) {
ModelCorretor mCorretor = new ModelCorretor();
mCorretor.setId(rs.getInt("corr_id"));
mCorretor.setNome(rs.getString("corr_nome"));
mCorretor.setCpf(rs.getString("corr_cpf"));
mCorretor.setEndereco(rs.getString("corr_endereco"));
mCorretor.setCep(rs.getString("corr_cep"));
ModelEstado estado = new ModelEstado();
estado.setId(rs.getInt("corr_estado_id"));
estado.setEstadoNome(rs.getString("estado_nome"));
estado.setEstadoSiglaModelEstado(rs.getString("estado_sg"));
mCorretor.setEstadoModelCorretor(estado);
ModelDdd ddd = new ModelDdd();
ddd.setId(rs.getInt("corr_ddd_id"));
ddd.setDddModelDdd(rs.getInt("ddd_ddd"));
ddd.setEstadoSigla(rs.getString("ddd_estsigla"));
mCorretor.setDdd(ddd);
mCorretor.setTel(rs.getString("corr_tel"));
modelCorretores.add(mCorretor);
}
} catch (SQLException ex) {
JOptionPane.showMessageDialog(null, "Erro ao ler lista A\nErro : " + ex);
} finally {
ConnectionFactory.closeConnection(con, pstmt, rs);
}
return modelCorretores;
}// end read
public List<ModelEstado> readEstado(String sqlEstado){
Connection con = ConnectionFactory.getConnnection();
PreparedStatement pstmt = null;
ResultSet rs = null;
List<ModelEstado> modelEstados = new ArrayList<>();
try {
pstmt = con.prepareStatement(sqlEstado);
rs = pstmt.executeQuery();
while (rs.next()) {
ModelEstado mEstado = new ModelEstado();
mEstado.setId(rs.getInt("estado_id"));
mEstado.setEstadoSiglaModelEstado(rs.getString("estado_sg"));
mEstado.setEstadoNome(rs.getString("estado_nome"));
modelEstados.add(mEstado);
}
} catch (SQLException ex) {
JOptionPane.showMessageDialog(null, "Erro ao ler lista\nErro B: " + ex);
} finally {
ConnectionFactory.closeConnection(con, pstmt, rs);
}
return modelEstados;
} // end readEstado
public List<ModelDdd> readDDD(String sqlDdd){
Connection con = ConnectionFactory.getConnnection();
PreparedStatement pstmt = null;
ResultSet rs = null;
List<ModelDdd> modelDdds = new ArrayList<>();
try {
pstmt = con.prepareStatement(sqlDdd);
rs = pstmt.executeQuery();
while (rs.next()) {
ModelDdd mDdd = new ModelDdd();
mDdd.setId(rs.getInt("ddd_id"));
mDdd.setDddModelDdd(rs.getInt("ddd_ddd"));
mDdd.setEstadoSigla(rs.getString("ddd_estsigla"));
modelDdds.add(mDdd);
}
} catch (SQLException ex) {
JOptionPane.showMessageDialog(null, "Erro ao ler lista C\nErro : " + ex);
} finally {
ConnectionFactory.closeConnection(con, pstmt, rs);
}
return modelDdds;
}// end readDDD
public String getSqlCorretor(){
return " SELECT\n" +
" ta.corr_id,\n" +
" ta.corr_nome,\n" +
" ta.corr_cpf,\n" +
" ta.corr_endereco,\n" +
" ta.corr_cep,\n" +
" ta.corr_estado_id,\n" +
" ta.corr_ddd_id,\n" +
" tb.estado_sg,\n" +
" tb.estado_nome,\n" +
" tc.ddd_ddd, \n" +
" tc.ddd_estsigla, \n" +
" ta.corr_tel \n" +
"FROM\n" +
" tbl_corretor ta\n" +
" INNER JOIN tbl_estado tb ON (ta.corr_estado_id = tb.estado_id)\n" +
" INNER JOIN tbl_ddd tc ON (ta.corr_ddd_id = tc.ddd_id)";
}