Rumah > Java > javaTutorial > Mengapa Kursor Tunggu Java Saya Tidak Dipaparkan Apabila Menggunakan Kursor Tersuai?

Mengapa Kursor Tunggu Java Saya Tidak Dipaparkan Apabila Menggunakan Kursor Tersuai?

Barbara Streisand
Lepaskan: 2024-11-29 13:07:14
asal
370 orang telah melayarinya

Why Doesn't My Java Wait Cursor Show When Using a Custom Cursor?

Masalah Paparan Kursor Tunggu Java

Garis Isu

Dalam aplikasi Java, tunggu kursor tidak dipaparkan dengan betul apabila tetikus melayang di atas panel dengan kursor tersuai. Apabila panel tidak menukar kursor, kursor tunggu muncul seperti yang dijangkakan.

Analisis

Isu utama berpunca daripada fakta bahawa kursor tunggu ditetapkan pada komponen tempat kejadian tetikus berasal. Dalam kes ini, apabila tetikus berada di atas panel dengan kursor tersuai, kursor tunggu ditetapkan pada panel itu dan oleh itu disembunyikan oleh kursor panel.

Penyelesaian Disyorkan

Untuk memintas isu ini dan memastikan kursor tunggu dipaparkan dengan betul, adalah disyorkan untuk menetapkan kursor tunggu pada kaca kaca bingkai yang mengandungi komponen yang mencetuskan keadaan menunggu. Cermin kaca ialah lapisan lutsinar yang terletak di atas semua komponen lain dalam bingkai.

Pelaksanaan

SSCE yang diubah suai:

SSCE yang diubah suai berikut menunjukkan cara melaksanakan pembetulan dengan menetapkan kursor tunggu pada glasspane:

public class BusyCursorTest extends javax.swing.JFrame {

    // ...

    private static void startWaitCursor(javax.swing.JFrame frame) {
        frame.getGlassPane().setCursor(java.awt.Cursor.getPredefinedCursor(java.awt.Cursor.WAIT_CURSOR));
        frame.getGlassPane().addMouseListener(mouseAdapter);
        frame.getGlassPane().setVisible(true);
    }

    private static void stopWaitCursor(javax.swing.JFrame frame) {
        frame.getGlassPane().setCursor(originalCursor);
        frame.getGlassPane().removeMouseListener(mouseAdapter);
        frame.getGlassPane().setVisible(false);
    }

    // ...

}
Salin selepas log masuk

Kelebihan Pendekatan ini:

  • Pendekatan ini memastikan kursor tunggu sentiasa kelihatan apabila diperlukan, tanpa mengira tetapan kursor mana-mana komponen dalam bingkai.
  • Ia menghapuskan keperluan untuk menjejak panel yang mungkin berada di hadapan atau sama ada acara itu dicetuskan oleh klik tetikus.
  • Ia menyediakan penyelesaian terpusat untuk mengubah suai gelagat kursor menunggu di peringkat kontena peringkat atas.

Atas ialah kandungan terperinci Mengapa Kursor Tunggu Java Saya Tidak Dipaparkan Apabila Menggunakan Kursor Tersuai?. 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