Maison > Java > javaDidacticiel > Pourquoi mon curseur d'attente Java n'apparaît-il pas lorsqu'un panneau définit son propre curseur ?

Pourquoi mon curseur d'attente Java n'apparaît-il pas lorsqu'un panneau définit son propre curseur ?

Linda Hamilton
Libérer: 2024-12-16 07:00:16
original
890 Les gens l'ont consulté

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

Problème d'affichage du curseur d'attente Java

Dans cette application Java, le curseur d'attente n'apparaît pas lorsque la souris survole un panneau qui définit son propre curseur. Voici une description du problème :

Problème :

  • Lorsqu'un panneau change de curseur, le curseur d'attente défini sur le conteneur de niveau supérieur n'apparaît pas .

Racine Cause :

  • Le curseur d'attente défini sur le JPanel remplace le curseur d'attente défini sur la vitre du cadre.

Solution :

  • Placez le curseur d'attente sur la vitre du cadre contenant les composants qui souhaitent afficher l'attente curseur.

SSCE modifié :

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() {
    };
}
Copier après la connexion

Notes supplémentaires :

  • Cette solution fonctionne indépendamment de tout panneau et ne nécessite pas de suivi des modifications du curseur dans plusieurs panneaux.
  • Le curseur d'attente est démarré à l'aide d'une minuterie. pour garantir qu'il s'affiche après un délai intentionnel (dans ce cas, 250 ms), ce qui laisse le temps à l'interface utilisateur de devenir réactive.
  • La variable originalCursor est utilisée pour restaurer le curseur d'origine lorsque le curseur d'attente est supprimé.

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

source:php.cn
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Derniers articles par auteur
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal