質問: レイアウトnullの環境で、ウィンドウサイズの変更に対応して各コンポーネントが適切に表示されるには? 線やイメージなどのグラフィックス関係では、ウィンドウサイズを変更しても、paintメソッドで各グラフィックスを相対的に定義しておけば、サイズ変更などしてもその都度呼び出されるので問題ないのですが、それがボタンやラベル、コンボボックスなどのコンポーネントの場合ではどうすればよいのでしょうか? レイアウトマネージャを使用すれば、サイズを変更したりしてもそれに対応できるのは分かっているのですが、レイアウトマネージャだと自由にコンポーネントを置けないので、レイアウトnullでやりたいのです。 レイアウトnullの場合でもそれは可能なのでしょうか? よろしくお願いします。
回答: あ、いわんとすることは理解できます。私も、うざったいのでレイアウトマネージャを切ってしまうことはよくありますから。 こういうときは、componentlistenerを使うといいですよ。フレームなどにaddcomponentlistenerで組み込めます。componentlistenerには、コンポーネントがリサイズされたときに発生するcomponentresizedというイベントが用意されています。これで、フレームがリサイズされたときにすべてのコンポーネントを再配置するような処理を用意しておけばいいわけです。 ただ、1番の方もおっしゃってますが、最終的には独自にレイアウトマネージャを定義して使ったほうが後々便利とは思いますが・・・・。