2

「トースト」アニメーション (上にスライドし、しばらく立ってから下にスライドする) でユーザーに通知を管理するトースト ハンドラーを開発しています。Toast クラスが拡張JWindowされました (テストのためだけにJDialog、より安定したリリースで使用できます)。

私の問題は、アニメーションの開始時にトースト (JWindow) を非表示にする一種のクリッピング領域を作成することです。現在、ウィンドウはアニメーション全体で表示されていますが、toast.setVisible(true);が実行されると完全に非表示になり、「スライド アップ」フェーズで表示され始め、「スタンド」フェーズで完全に表示され、「スライド ダウン」で再び消え始める必要があります。 " 段階。

クリッピング領域の設定方法がわかりません。誰か助けてください。

それが理解できたことを願っています。詳細が必要な場合はお知らせください。

4

1 に答える 1

2

この から始めてLowerRightFrame、次の初期位置を使用します。

int x = (int) rect.getMaxX() - f.getWidth();
int y = (int) rect.getMaxY() - f.getInsets().top;

次に、 a を使用しjavax.swing.Timerて定期的yに最大の高さまで増やします。

int y = (int) rect.getMaxY() - f.getHeight();

このアプローチでは、クリッピングはホスト プラットフォームによって強制されます。一部のプラットフォームでは、表示されているウィンドウを完全にオフスクリーンにできないことに注意してください。目に見えるドラッグ バーがなければ、ウィンドウにアクセスできません。

于 2012-09-12T00:47:20.553 に答える