Rumah > Java > javaTutorial > teks badan

Mengapakah UI Swing saya membeku apabila menggunakan `Thread.sleep()` dengan `JFileChooser`?

DDD
Lepaskan: 2024-11-03 05:43:02
asal
535 orang telah melayarinya

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

Swing UI Berhenti dengan Thread.sleep()

Pertanyaan anda mencadangkan bahawa menggunakan Thread.sleep() bersama-sama dengan JFileChooser membawa kepada Penggantungan UI, menghalang paparan unsur Swing. Sebab di sebalik tingkah laku ini terletak pada fakta bahawa Thread.sleep() digunakan pada Event Dispatch Thread (EDT), yang bertanggungjawab untuk mengurus GUI. Akibatnya, UI memasuki keadaan tidur, menjadikannya tidak bertindak balas.

Untuk menangani isu ini, adalah disyorkan untuk menggunakan javax.swing.Timer sebagai gantinya. Begini cara ia berfungsi:

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

Dengan menggunakan Pemasa, tugas berkala anda dilaksanakan di luar EDT, memastikan UI kekal responsif semasa tugas anda berjalan selari.

Atas ialah kandungan terperinci Mengapakah UI Swing saya membeku apabila menggunakan `Thread.sleep()` dengan `JFileChooser`?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

sumber:php.cn
Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan