Di Java, adalah perkara biasa untuk menghadapi situasi di mana anda perlu melaksanakan tugas yang berjalan lama di latar belakang tanpa membekukan UI aplikasi . Untuk menyampaikan proses yang sedang berjalan kepada pengguna, memaparkan bar kemajuan tidak tentu boleh menjadi penyelesaian yang berkesan. Mari kita terokai cara melaksanakan ini menggunakan komponen Java Swing.
Kelas SwingWorker menyediakan cara yang mudah untuk melaksanakan tugasan yang berjalan lama di latar belakang sambil membenarkan UI untuk kekal responsif. Dalam kes kami, kami akan mencipta BackgroundTask yang memanjangkan SwingWorker
Dalam kaedah doInBackground(), kami akan laksanakan proses latar belakang yang dikehendaki, dalam kes ini, ProcessBuilder. Memandangkan kami melaksanakan perintah sistem, kami mengubah hala aliran ralat untuk memastikan sebarang ralat turut muncul dalam output bar kemajuan.
Kemudian, dalam kaedah process(), kami mengemas kini bar kemajuan dengan output daripada proses latar belakang. Akhir sekali, dalam kaedah done(), kami mengendalikan sebarang kemas kini akhir, seperti menetapkan semula bar kemajuan dan mendayakan/melumpuhkan butang kawalan.
Bingkai aplikasi utama kami mengandungi BackgroundTask tersuai kami, kawasan teks untuk memaparkan output arahan dan bar kemajuan untuk menunjukkan kemajuan proses.
Dalam kaedah displayGUI(), kami menyediakan JFrame dengan pelbagai komponennya dan memulakan tugas latar belakang apabila butang "Mula" diklik. Mengklik "Berhenti" menamatkan tugasan dan apabila tugasan selesai, bar kemajuan dimatikan dan butang "Mula" didayakan semula.
Coretan kod ini menunjukkan penyelesaian praktikal untuk memaparkan bar kemajuan tidak tentu semasa tugas latar belakang sedang dijalankan. Dengan memanfaatkan SwingWorker dan BackgroundTask tersuai, kami boleh meningkatkan pengalaman pengguna dengan memberikan maklum balas visual dan memastikan antara muka aplikasi responsif. Corak ini boleh digunakan pada pelbagai tugasan yang berjalan lama, memastikan aplikasi kekal interaktif dan mesra pengguna.
Atas ialah kandungan terperinci Bagaimana untuk Memaparkan Bar Kemajuan Tidak Tentu untuk Proses Latar Belakang dalam Java Swing?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!