私はそこにコンポーネントを配置するJPanelを持っています。サブコンポーネント(ネストされたものまで)が再描画されるたびに通知を受ける必要があります。 JPanelにコンポーネントが追加されたときに登録できるイベントはありますか?JPanelの子コンポーネントのペイントイベントを検出するにはどうすればよいですか?
私の目的は、JPanelの右下と下端にスクロールバーを描画することですが、サブコンポーネントを再描画するとスクロールバーと重なり、スクロールバーの一部が見えなくなります。コンポーネントがそのビューを更新してスクロールバーの後ろにとどまるときにスクロールバーを再描画したい。
もう少し明確にするために、この2つはUIのスクリーンショットです。
最初の画像が正しくありませんが、これは私がマウスを使ってコンポーネントを置く場合にのみ発生します。そうでなければ、それは良い見ている。右側の画像は、コンテナがロードされたときの画像です。私は、コンポーネントが常にスクロールバーの後ろに表示されるようにしたいが、特定のコンポーネントが再描画されたときは検出できない。私はSwingの自身の絵画のメカニズムの中に答えを見つけた。このような同様の問題に遭遇した人のために
あなたはhttp://docs.oracle.com/javase/7/docs/api/java/awt/event/ComponentListener.htmlを参照してください 'ComponentListener'を追加することができます - 隠された、コンポーネントがリサイズされているときに、このリスナーが通知されます/示されて移動した –
@MartinFrank真のマーティン。しかし、再塗装はそれらの出来事のいずれにも当てはまらない。私はそれを使って試しました。 – OmerHalit
コンポーネントがスクロールペインのビューポートの内部にないのはどうですか? –