Problème : Problème d'affichage du curseur d'attente en Java
Dans la bibliothèque Java Swing, la définition du curseur d'un composant ne prend pas toujours effet lorsqu'il y a des panneaux imbriqués avec des curseurs personnalisés. Cela peut entraîner des incohérences dans le comportement du curseur, où le curseur d'attente ne s'affiche pas comme prévu.
Correction : utilisation de la vitre pour le contrôle du curseur
Pour résoudre ce problème, il est recommandé de gérer l'affichage du curseur à l'aide de la vitre du cadre qui contient les composants. La vitre est une vitre transparente qui se situe au niveau supérieur de la hiérarchie du cadre. En plaçant le curseur sur la vitre, n'importe quel composant dans le cadre peut afficher le curseur d'attente quels que soient ses propres paramètres de curseur.
Solution de code modifié :
Ce qui suit le code modifié montre comment utiliser la vitre pour l'affichage du curseur d'attente :
import java.awt.*; import java.awt.event.*; import java.util.TimerTask; import java.util.Timer; public class BusyCursorTest extends javax.swing.JFrame { private javax.swing.JPanel cursorPanel = null; public BusyCursorTest() { // ... public 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); } // ... } // ... public static java.awt.Cursor originalCursor = null; private static final java.awt.event.MouseAdapter mouseAdapter = new java.awt.event.MouseAdapter() { }; public static final int DELAY_MS = 250; }
Dans ce code modifié, startWaitCursor() et Les méthodes stopWaitCursor() sont utilisées pour gérer le curseur sur la vitre du cadre. Cela garantit que le curseur d'attente est affiché de manière cohérente quels que soient les paramètres de curseur des composants imbriqués.
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!