"Se um trabalhador quiser fazer bem o seu trabalho, ele deve primeiro afiar suas ferramentas." - Confúcio, "Os Analectos de Confúcio. Lu Linggong"
Primeira página > Programação > Por que minha UI Swing congela ao usar `Thread.sleep()` com `JFileChooser`?

Por que minha UI Swing congela ao usar `Thread.sleep()` com `JFileChooser`?

Publicado em 2024-11-09
Navegar:882

Why does my Swing UI freeze when using `Thread.sleep()` with `JFileChooser`?

Swing UI para com Thread.sleep()

Sua consulta sugere que a utilização de Thread.sleep() em conjunto com JFileChooser leva a um Suspensão da UI, inibindo a exibição de elementos Swing. A razão por trás desse comportamento reside no fato de que Thread.sleep() é invocado no Event Dispatch Thread (EDT), que é responsável por gerenciar a GUI. Conseqüentemente, a IU entra em estado de suspensão, deixando de responder.

Para resolver esse problema, é recomendável empregar um javax.swing.Timer. Funciona assim:

Timer t = new Timer(1000 * 5, new ActionListener() {
    public void actionPerformed(ActionEvent e) {
        // Perform your recurring task
    }
});

Ao utilizar o Timer, sua tarefa periódica é executada fora do EDT, garantindo que a UI permaneça responsiva enquanto sua tarefa é executada em paralelo.

Tutorial mais recente Mais>

Isenção de responsabilidade: Todos os recursos fornecidos são parcialmente provenientes da Internet. Se houver qualquer violação de seus direitos autorais ou outros direitos e interesses, explique os motivos detalhados e forneça prova de direitos autorais ou direitos e interesses e envie-a para o e-mail: [email protected]. Nós cuidaremos disso para você o mais rápido possível.

Copyright© 2022 湘ICP备2022001581号-3