1

JFrame 内にフラクタル生成コンポーネント (JPanel のサブクラス) があります。ユーザーがウィンドウのサイズを変更すると、フラクタルが新しいサイズに更新されるまでにかなりの時間がかかります。

現在、JPanel に ComponentListener がありますが、ユーザーがウィンドウの境界線をドラッグしているときにマウスを動かすたびに、その componentResized イベントが呼び出されます。これは、フラクタルが何度もサイズ変更され、ゆっくりと (数分かけて) 新しいサイズに成長することを意味します。

ユーザーがマウス ボタンを離したときに通知され、ユーザーがサイズ変更を完了したときにのみフラクタル サイズを変更できるようにする方法はありますか?

代わりにリスナーが JFrame にアタッチされている場合にこれが発生すると他の人が報告していますが、何らかの理由でこれは私 (および他の人) には機能しません。

4

3 に答える 3

1
  • HierarchyListenerを見て、HierarchyBoundsListenerへのインターフェースでHierarchyEventを聞くことができます

  • 基本的に に問題はありませんがComponentListener、予想されるイベントを にラップする必要があります。Swing Timerイベントが繰り返される場合は、 を呼び出すだけでTimer#restart()、 からの出力Swing TimerSwing Action

于 2012-04-19T14:10:47.290 に答える
0

少し遅れましたが、誰も正解を見つけられなかったようです。child.updateUI()ウィンドウの ComponentListener (componentResizedブロック) 内で呼び出すと、この子はそれ自体のサイズを変更し、その内容を更新することがわかりました。タイマーの使用は安全ではありません。

于 2013-12-25T01:00:18.720 に答える