Erro ao inserir dados no JList

1 resposta
R

Tenho um JList:

private DefaultListModel listModelLogs = new DefaultListModel();
listVendedores.setModel(listModelLogs);

private void btEnviarActionPerformed(java.awt.event.ActionEvent evt) {                                         
        for(int i = 0 ; i < 5; i++){
            try {
                listModelLogs.addElement("Teste: " + i);
                Thread.sleep(2000);
            } catch (InterruptedException ex) {
                Logger.getLogger(FormPrincipal.class.getName()).log(Level.SEVERE, null, ex);
            }
        }
    }

Está acontecendo o seguinte:
Ao invés de inserir a primeira mensagem e depois de 2 segundos inserir a outra e assim por diante, está acontecendo assim: ele fica parado processando tudo sem exibir nada, ai na hora que termina o processamento(10 segundos) ele exibe as mensagem tudo de uma vez…

Como resolver isso?

1 Resposta

JeanJavaMan

Pelo o seu erro, acho q vc está fazendo isso na Thread principal, ou seja ela vai travar e esperar o tempo passar! vc pode criar uma nova Thread ou usar um SwingWorker. é bom smp aprender Thread, mas eu uso SwingWorker aqui vai um exemplo:

SwingWorker worker= new SwingWorker() {
        @Override
        protected Object doInBackground() throws Exception {
            //faça alguma coisa aqui e tallz
            return null;
        }
    };
      worker.execute();
Criado 18 de dezembro de 2015
Ultima resposta 19 de dez. de 2015
Respostas 1
Participantes 2