首頁 > Java > java教程 > 為什麼當面板設定自己的遊標時我的 Java 等待遊標不出現?

為什麼當面板設定自己的遊標時我的 Java 等待遊標不出現?

Linda Hamilton
發布: 2024-12-16 07:00:16
原創
889 人瀏覽過

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

Java 等待遊標顯示問題

在此Java 應用程式中,當滑鼠懸停在定義其等待遊標的面板上時,等待遊標不會出現自己的遊標。以下是問題的細分:

問題:

  • 當面板更改其遊標時,在頂級容器設定的等待遊標不會出現.

根原因:

  • JPanel上設定的等待遊標覆蓋框架玻璃窗格上設定的等待遊標。

解決方案:

  • 將等待遊標設定在包含希望顯示的組件的框架的玻璃窗格上

修改的SSCE:

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() {
    };
}
登入後複製

附加說明:

  • 這個解決方案獨立於任何面板工作,不需要追蹤多個面板中的遊標變化面板。
  • 使用計時器啟動等待遊標,以確保其在有意延遲(在本例中為 250 毫秒)後顯示,從而為 UI 提供響應時間。
  • originalCursor 變數用於當等待遊標被移除時恢復原始遊標。

以上是為什麼當面板設定自己的遊標時我的 Java 等待遊標不出現?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

來源:php.cn
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
作者最新文章
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板