- ベストアンサー
GUIで作成したアプリで、最大化ボタンを押すとフレームしか最大化されない
タイトル通りなのですが、GUIでフレーム内にtableとpaneとbuttonがある簡単なアプリを作成したのですが、右上の最大化ボタンを押すとフレームだけは最大化されますが、他のtableやpaneなどは最初の位置から動かず、最初の状態のままという状態です。 これをなんとか最大化ボタンを押すと、他も画面にあわせて大きくさせるようにしたいのですがどうしたらいいのかわからず困っています。 具体的にどのようなプログラムを組み込んだらよいか教えていただけたら幸いです。 お願いします。
- みんなの回答 (2)
- 専門家の回答
質問者が選んだベストアンサー
AWTにしてもSWINGにしても、コンポーネントの配置はレイアウトマネージャが行います。 レイアウトマネージャーに関して、何もしていないのなら FlowLayoutが使われているのかもしれません。 適切なレイアウトマネージャーを使ってください。 どんな種類があるのかは、ここでは全てを教えることはできませんので、参考書等で学習してください。
その他の回答 (1)
- anmochi
- ベストアンサー率65% (1332/2045)
キーワードはjava.awt.event.ComponentListenerとjava.awt.event.ComponentEventだ。 JavaでNullレイアウトの時、窓のサイズを変更しても中のブツは何も変わらない。まぁこれはVBなんかでもそうだよね。 では、サイズが変わった事を知り、サイズを知り、それにあわせてコンポーネントのサイズを変える、という処理が必要になるやんね。 リスナーとイベントについての知識は、窓プログラムを作っているという事で全く問題ないと思うのだが、ちょっとだけサンプルを。文字数の関係もあるので本当に必要最小限のものを。 public class Size extends java.awt.Frame implements java.awt.event.ComponentListener { public Size() { this.addComponentListener(this); } public static void main(String[] args) { Size s = new Size(); s.setVisible(true); } public void componentResized(java.awt.event.ComponentEvent e) { this.setTitle("Resize"); } public void componentMoved(java.awt.event.ComponentEvent e) {} public void componentShown(java.awt.event.ComponentEvent e) {} public void componentHidden(java.awt.event.ComponentEvent e) {} }