JavaFX Threads

03/04/2019

0

Boa tarde.

Eu tenho uma tela feita em JavaFX que carrega uma tabela do BD e para esta tela não ficar "congelada" eu estou carregando o banco de dados através de outra thread. Gostaria de saber se estou fazendo do modo correto ou se teria um jeito melhor?

Segue o código:
public void carregarTableViewClientes() {

Runnable runnable = () -> {
TelaChequesController.listaCheques = getTodosChequeController();
tvChequeNome.setCellValueFactory(new PropertyValueFactory<>(“nome”));
tvChequeValor.setCellValueFactory(new PropertyValueFactory<>(“valor”));
tvChequeData.setCellValueFactory(new PropertyValueFactory<>(“dataString”));
tvChequeDataBP.setCellValueFactory(new PropertyValueFactory<>(“dataBomParaString”));
tvColunaTerceiro.setCellValueFactory(new PropertyValueFactory<>(“nomeTerceiro”));

observableListCheques = FXCollections.observableArrayList(listaCheques);
tvCheque.setItems(observableListCheques);
};
Thread t = new Thread(runnable);
t.start();
}

Outra dúvida que eu tenho: quando eu inicio o programa eu chamo uma tela de Login e eu fiz um progressbar que fica 100% carregado quando o meu banco de dados manda uma lista pro meu sistema, ex.: eu tenho uma lista de clientes no banco de dados, aí eu faço numa nova thread carregar uma lista no sistema, mas nem uso essa lista, ela só me serve mesmo pra fazer o sistema conectar com o banco de dados, para o usuário não ficar esperando sem saber o que tá acontecendo, eu preciso fazer isso pq sempre na primeira conexão do Hibernate com o BD ele demora um pouco, depois fica rápido para as demais requisições envolvendo BD. Isso está correto? Ou teria uma forma melhor de fazer? Pq pra mim ficou parecendo uma "gambiarra".

Obrigado.
Douglas Neto

Douglas Neto

Responder

Assista grátis a nossa aula inaugural

Assitir aula

Saiba por que programar é uma questão de
sobrevivência e como aprender sem riscos

Assistir agora

Utilizamos cookies para fornecer uma melhor experiência para nossos usuários, consulte nossa política de privacidade.

Aceitar