プロが教える店舗&オフィスのセキュリティ対策術

ちょっと題名がおかしくなってしまいましたが、

SwingでもAWTでも、setBounds()メソッドを使ってボタンなどを配置すると、最大化ボタンを押しても位置がそのまま表示されてしまうので、画面のデザインとしておかしくなってしまいます。

VBなんかだと最大化ボタンを押すとそれに応じてボタンやテキストボックスもちゃんと位置が移動します。

最大化ボタンを押しても適当に表示させる方法はないでしょうか?

A 回答 (2件)

最大化したときだけの話ですか?



普通に、ウインドウサイズを変更したときはうまくいくのでしょうか?


どちらもダメなら、適切なレイアウトマネージャーを設定
して下さい。
    • good
    • 0
この回答へのお礼

やはりレイアウトマネージャーしかないんですかね。

あれを覚えるのは苦労して、めんどくさいんでsetBoundsでやったんですが。。

どうもありがとうございます。1つ勉強になりました。

お礼日時:2004/04/02 16:51

普通は、自分で作るよりは覚えた方が楽だとは思いますけど...



レイアウトマネージャーをnullに設定すれば(無指定にすること)、
コンテナのサイズの変更に係わらず、位置・サイズは変更されません。
ただし、preferredSize等を適切な値に設定しないと、
さらにコンテナに格納した場合、正しく表示されない可能性があります。

逆に、コンテナのサイズの変更によって、コンポーネントの位置・サイズを
変更したいのであれば、適切なレイアウトマネージャーを設定する必要があります。

コンテナのサイズ変更時に、コンテナはレイアウトマネージャーのlayoutContainerを
呼び出します。レイアウトマネージャーはこのメソッドで、コンポーネントの位置・サイズを
計算し、各コンポーネントに対しsetLocationやsetSizeを設定します。


まあ、よく使うような配置パターンがあるのなら、それを表現するレイアウトマネージャーを
作ってもいいかもしれませんね。

ちなみに、私は3つくらい作りました。
    • good
    • 0
この回答へのお礼

どうも丁寧な解説ありがとうございます。

根本的なところから説明をしてくださったので、大変よくわかりました。

自分でレイアウトマネージャーを3つも作ったなんてすごいですね。僕もつくってみたいんですが、そこまで知識がないので(;^^

一から教えてもらったみたいで、Javaの画面サイズ変更についてがよくわかりました。VBはその点、便利にできてますね。VB.netに変わろうかなと思っている今日この頃です。

どうも本当にありがとうございました。またよろしくお願いします。

お礼日時:2004/04/05 17:40

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!