ホームページ > Java > &#&チュートリアル > パネルが独自のカーソルを設定するときに Java 待機カーソルが表示されないのはなぜですか?

パネルが独自のカーソルを設定するときに Java 待機カーソルが表示されないのはなぜですか?

Linda Hamilton
リリース: 2024-12-16 07:00:16
オリジナル
891 人が閲覧しました

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

Java 待機カーソル表示の問題

この 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 中国語 Web サイトの他の関連記事を参照してください。

ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
著者別の最新記事
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート