Rumah > Java > javaTutorial > Mengapa Apl Java Saya Lag atau Ranap Selepas Menggunakan OSXAdapter untuk Fail Terjatuh?

Mengapa Apl Java Saya Lag atau Ranap Selepas Menggunakan OSXAdapter untuk Fail Terjatuh?

Mary-Kate Olsen
Lepaskan: 2024-11-26 20:14:10
asal
676 orang telah melayarinya

Why Does My Java App Lag or Crash After Using OSXAdapter for File Drops?

JAR Bundler menggunakan OSXAdapter menyebabkan aplikasi ketinggalan atau ditamatkan

Dalam senario yang diterangkan, aplikasi Java mengalami masalah prestasi dan tingkah laku yang tidak normal selepas menggabungkan perpustakaan OSXAdapter untuk mengendalikan fail lepaskan acara pada macOS. Masalahnya berkemungkinan berpunca daripada menyekat utas penghantaran acara (EDT) semasa melaksanakan tugas yang memakan masa.

Untuk menyelesaikannya, aplikasi harus diubah suai untuk melaksanakan tugas ini pada utas berasingan sambil mengemas kini model pada EDT . SwingWorker, dengan kaedah process()nya, menawarkan mekanisme yang sesuai untuk ini. Sebagai alternatif, invokeLater() boleh digunakan seperti yang dicontohkan dalam kod yang disediakan.

Benang Salah

  1. Pendekatan Salah:

    • Kelas Pengawal tidur (menyekat EDT) selama 10 saat.
  2. Pendekatan Disyorkan:

    • Lakukan tugas yang memakan masa dalam urutan berasingan dan kemas kini GUI pada EDT menggunakan SwingWorker atau invokeLater().

Contoh Pelaksanaan SwingWorker

public class Controller extends SwingWorker{

    public Controller() {
        execute(); // Starts the SwingWorker thread
    }

    @Override
    // Perform the time-consuming tasks (i.e., adding rows to the table) in a background thread.
    protected Void doInBackground() {
        // ....
        return null;
    }

    @Override
    // Update the GUI on the EDT after the background task is complete.
    protected void done() {
        // ....
    }
}
Salin selepas log masuk

Pertimbangan Tambahan

  • Pastikan kaedah isDispatchThread() digunakan dalam Pengawal untuk memeriksa sama ada EDT sedang dijalankan disekat.
  • Rujuk projek GitHub yang disediakan untuk seni bina MVC dan penciptaan berkas aplikasi Mac OS tanpa JAR Bundler.
  • Terokai teknik tatal auto JTable yang ditunjukkan dalam contoh.
  • Siasat pendekatan alternatif seperti yang dicadangkan dalam pautan yang disediakan.

Atas ialah kandungan terperinci Mengapa Apl Java Saya Lag atau Ranap Selepas Menggunakan OSXAdapter untuk Fail Terjatuh?. 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
Artikel terbaru oleh pengarang
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan