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 } });
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!