Rumah >Java >javaTutorial >Mengapakah aplikasi JAR Bundler saya ketinggalan atau ditamatkan apabila menggunakan OSXAdapter?

Mengapakah aplikasi JAR Bundler saya ketinggalan atau ditamatkan apabila menggunakan OSXAdapter?

DDD
DDDasal
2024-11-24 22:33:12768semak imbas

Why is my JAR Bundler application lagging or terminating when using OSXAdapter?

JAR Bundler menggunakan OSXAdapter menyebabkan aplikasi ketinggalan atau ditamatkan

Soalan ini timbul daripada keperluan untuk mengaitkan fail JAR dengan jenis fail tertentu (.jarbundlerproblem) menggunakan Apple Jar Bundler untuk OS X. Selain itu, aplikasi memerlukan keupayaan untuk mengendalikan fail yang klik dua kali dan diluluskan sebagai hujah.

Untuk mencapai matlamat ini, pembangun menggunakan perpustakaan OSXAdapter untuk mengendalikan acara berkaitan fail. Walau bagaimanapun, pengubahsuaian ini telah membawa kepada tingkah laku yang tidak konsisten dalam aplikasi. Kadangkala, ia tidak membuka atau memaparkan tetingkap kosong untuk tempoh yang panjang.

Analisis dan Penyelesaian:

Isu ini berpunca daripada potensi aplikasi untuk menyekat acara hantaran benang (EDT) kerana penggunaan 'Thread.sleep()' dalam kaedah 'doWork()'. Ini boleh mengakibatkan GUI tidak responsif sepenuhnya malah menyebabkan aplikasi ketinggalan atau ditamatkan.

Pendekatan Disyorkan:

Untuk menyelesaikan isu ini, adalah disyorkan untuk gunakan SwingWorker atau laksanakan antara muka 'Boleh Dijalankan' untuk melaksanakan tugas yang memakan masa dalam urutan yang berasingan. Ini akan membebaskan EDT, membolehkan GUI kekal responsif.

Pendekatan Alternatif untuk Auto-Tatal JTable:

  • Gunakan kelas 'SwingWorker', yang secara automatik memanggil 'process()' dan mengemas kini model pada EDT.
  • Gunakan kaedah 'invokeLater()' untuk menggunakan kemas kini model pada EDT.

Nota Tambahan:

  • Adalah dicadangkan untuk menggunakan pendekatan alternatif untuk membina himpunan aplikasi Mac OS tanpa bergantung pada JAR Bundler.
  • Coretan kod yang disediakan dalam jawapan menunjukkan cara menambahkan baris pada JTable dan mengekalkan gelagat tatal automatik.

Atas ialah kandungan terperinci Mengapakah aplikasi JAR Bundler saya ketinggalan atau ditamatkan apabila menggunakan OSXAdapter?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
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