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); } // ... }
Kelebihan Pendekatan ini:
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!