Bom dia Srs. Estou com uma dificuldade de compreender como fazer essa estrutura. Estou utilizando JavaFX.
Na imagem 1 acima eu tenho uma tela de Cadastro, nesta tela tem o cadastro de endereço. O exemplo que eu vou usar é o campo “Cidade”. Pode ver que tenho duas textfields no Campo Cidade:
A primeira textField é o código do IBGE de Identificação da Cidade;
O segundo textField é o nome da cidade;
Ao clicar no Botão “…” me abre uma tela com as cidades cadastradas no Banco de dados sendo mostradas em uma tabela. Conforme a imagem abaixo:
O que eu quero é! Ao clicar na cidade desejada na tabela, essa informação seja carregada nos campos TextFields correspondentes da imagem 1
Abaixo segue os código:
Abaixo está o ModeloCidade com seus construtor:
private String codIbge; private String cidade; private ModeloEstado fkEstado;public ModeloCidade(String codIbge, String cidade, ModeloEstado fkEstado) { this.codIbge = codIbge; this.cidade = cidade; this.fkEstado = fkEstado; } public ModeloCidade(){ } // Abaixo estão os GETTER e os SETTERS... não vou colocar pra não ficar muito grande!
Abaixo está minha classe DAO de consulta ao banco:
public ArrayList listaTabela() { ModeloCidade modCidade; ModeloEstado modEstado; ArrayList lista = new ArrayList<>();String sql = "SELECT codigo_ibge , cidade , fk_estado " + "FROM "+tabela+" " + "ORDER BY cidade"; try { con.conectar(); con.executaSQL(sql); while(con.resultSet.next()) { modCidade = new ModeloCidade(); modEstado = new ModeloEstado(); modCidade.setCodIbge(con.resultSet.getString("codigo_ibge")); modCidade.setCidade(con.resultSet.getString("cidade")); modEstado.setIndexador(con.resultSet.getInt("fk_estado")); modCidade.setFkEstado(modEstado); lista.add(modCidade); con.desconectar(); } } catch (SQLException e) { con.desconectar(); JOptionPane.showMessageDialog(null, e); } return lista; }
Abaixo está meu Controller para carregar os dados da lista na tabela:
public void carregarTabelaBancoDados(){ ArrayList listaCidade = daoCidade.listaTabela(); ObservableList observableListTabela = FXCollections.observableArrayList(); colCodigoIbge.setCellValueFactory(new PropertyValueFactory<>(“codigoIbge”)); colCidade.setCellValueFactory(new PropertyValueFactory<>(“cidade”)); colEstado.setCellValueFactory(new PropertyValueFactory<>(“estado”));if(!observableListTabela.isEmpty()){ observableListTabela.clear(); System.out.println("Tabela Limpa"); } listaCidade.stream().map((c) -> new ModeloTabelaCidade( c.getCodIbge(), c.getCidade() , c.getFkEstado().getEstadoNome() )).forEachOrdered((m) -> { observableListTabela.add(m); }); tblCidade.setItems(observableListTabela); }
Tudo está funcionando perfeitamente, conforme imagem as cidades estão sendo listadas na tabela, preciso então clicar pra selecionar e ao clicar no botão carregar, as informações serão carregadas nos campos respectivos. Não sei se pega a informação direto da tabela, ou passa pelo BD… Se alguém puder me dar uma luz, um exemplo ou artigo pra entender. Agradeço mto… Tnks Srs.

