Java 等待遊標顯示問題
問題摘要
在Java 應用程式中,等待Java 應用程式當滑鼠懸停在帶有自訂遊標的面板上時,遊標無法正確顯示。當面板不改變遊標時,等待遊標如預期出現。
分析
主要問題源自於等待遊標設定在滑鼠事件起源的元件。在這種情況下,當滑鼠懸停在帶有自訂遊標的面板上時,等待遊標會設置在該面板上,從而被面板的遊標隱藏。
建議的解決方法
為了避免此問題並確保等待遊標正確顯示,建議將等待遊標設置在包含觸發等待狀態的組件的框架的玻璃窗格上。玻璃板是一個透明層,位於框架中所有其他組件的頂部。
實作
修改的 SSCE:
下面修改後的SSCE示範如何透過在螢幕上設定等待遊標來實現修復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); } // ... }
此方法的優點:
以上是為什麼使用自訂遊標時我的 Java 等待遊標不顯示?的詳細內容。更多資訊請關注PHP中文網其他相關文章!