Rumah >Java >javaTutorial >Mengapa Kursor Tunggu Java Saya Tidak Muncul Apabila Panel Menetapkan Kursornya Sendiri?

Mengapa Kursor Tunggu Java Saya Tidak Muncul Apabila Panel Menetapkan Kursornya Sendiri?

Linda Hamilton
Linda Hamiltonasal
2024-12-16 07:00:16891semak imbas

Why Doesn't My Java Wait Cursor Appear When a Panel Sets Its Own Cursor?

Masalah Paparan Kursor Tunggu Java

Dalam aplikasi Java ini, kursor tunggu tidak muncul apabila tetikus melayang di atas panel yang mentakrifkan kursor sendiri. Berikut ialah pecahan isu:

Masalah:

  • Apabila panel menukar kursornya, kursor tunggu yang ditetapkan pada bekas peringkat atas tidak muncul .

Akar Punca:

  • Kursor tunggu yang ditetapkan pada JPanel mengatasi set kursor tunggu pada anak tetingkap kaca bingkai.

Penyelesaian:

  • Tetapkan kursor tunggu pada anak tetingkap kaca bingkai yang mengandungi komponen yang ingin memaparkan tunggu kursor.

SSCE yang diubah suai:

public class BusyCursorTest extends javax.swing.JFrame {

    private javax.swing.JPanel cursorPanel = null;

    public BusyCursorTest() {
        // ...
        // Set the wait cursor on the glass pane
        startWaitCursor(this);
        // ...
    }

    private static void startWaitCursor(javax.swing.JFrame frame) {
        frame.getGlassPane().setCursor(java.awt.Cursor.getPredefinedCursor(java.awt.Cursor.WAIT_CURSOR));
        // Add mouse listener to glass pane for handling cursor visibility
        frame.getGlassPane().addMouseListener(mouseAdapter);
        frame.getGlassPane().setVisible(true);
    }

    // ...

    private static java.awt.event.MouseAdapter mouseAdapter = new java.awt.event.MouseAdapter() {
    };
}

Nota Tambahan:

  • Penyelesaian ini berfungsi secara bebas daripada mana-mana panel dan tidak memerlukan penjejakan perubahan kursor dalam berbilang panel.
  • Kursor tunggu dimulakan menggunakan pemasa untuk memastikan ia dipaparkan selepas kelewatan yang disengajakan (dalam kes ini, 250ms), memberikan masa untuk UI menjadi responsif.
  • Pembolehubah Kursor asal digunakan untuk memulihkan kursor asal apabila kursor tunggu dialih keluar.

Atas ialah kandungan terperinci Mengapa Kursor Tunggu Java Saya Tidak Muncul Apabila Panel Menetapkan Kursornya Sendiri?. 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