Bom dia criei um código que exibe as informações do banco em um listview usando javafx 2 fxml.
O programa está quase terminado. porém quando o usuário faz algum evento como atualizar a base de dados, preciso que ao final do update, atualize também o listview?
Pensando na estrutura deste tutorial http://docs.oracle.com/javafx/2/ui_controls/list-view.htm
Postei o tutorial especifico pois o meu código ficou muito grande, pois é um gerenciador de tarefas. porém o problema só está no listview.
Como posso implementar a atualização?
obrigado.
Primeiro limpe os dados do seu ListView ou ComboBox usando:
e depois é só setar os novos valores usando uma lista de objetos:
Ok obrigado vou tentar.
Muito obrigado
Uma outra sugestão é usar o setAll também:
listview.getItems().setAll(novosItems);
Eu já havia tentado muitas formas de limpar a lista para novos campos porém estava dando erro nullexeption. Descobri que era o listener atribuido no inicialize
Segue:
listaTarefas.getSelectionModel().selectedItemProperty().addListener(
new ChangeListener<String>() {
public void changed(ObservableValue<? extends String> ov, String old_val, String new_val) {
try {
bt_iniciar.disableProperty().set(false);
List resultadoCliente = metodosGerencidador.multipSelecoes("select * from Gerenciador where cliente = '"+new_val+"'");
lb_cliente.setText(String.format("%s", resultadoCliente.get(0)));
txt_contato.setText(String.format("%s", resultadoCliente.get(1)));
txt_nomeCliente.setText(new_val);
text_email.setText(String.format("%s", resultadoCliente.get(2)));
text_tels.setText(String.format("%s", resultadoCliente.get(3)));
TotalHoras.setText(String.format("%s", resultadoCliente.get(4)));
lb_id.setText(String.format("%s", resultadoCliente.get(5)));
lb_total_cons.setText(String.format("%s", resultadoCliente.get(6)));
String Resultado = String.format("%s", resultadoCliente.get(7));
if(Resultado=="Análise"){
rb_analise.setSelected(true);
}else if (Resultado=="Aprovado"){
rb_aprovado.setSelected(true);
}
int IdCliente = (int)resultadoCliente.get(5);
List grupoOBS = metodosGerencidador.selecionar("select * from obs where idcliente="+IdCliente, "ID");
int GrupoContador = grupoOBS.size();
for (int i = 0; i < GrupoContador; i++) {
cb_obs.getItems().addAll(grupoOBS.get(i));
}
} catch (SQLException ex) {
JOptionPane.showMessageDialog(null, "Erro encontrado:"+ex);
}
}
}
);
Bem minha alternativa é eliminar o listener para os códigos de alteração do listview funcionarem, porém não estou conseguindo fazer isso.
Alguém pode me ajudar?
listaTarefas.getSelectionModel().selectedItemProperty().removeListener(????);
To na mesma cara, a muito tempo to com esse problema de modificar dados na listview e atualiza-los e tb ta dando nullpointerexception no listener… já o porquê ta foda de saber, se souber alguma coisa da o toque, ainda estou tentando aqui!
Boa tarde!
William, por favor, poste seu código e sua dúvida com mais clareza pra gente poder te ajudar de forma mais objetiva…