解答例 - 実習課題3 - 4.レイアウト・マネージャー
(実習課題3)
「FlowLayout」には引数を取らないコンストラクタの他に、引数を1つ取るものと3つ取るものの2つがあります。それぞれのコンストラクタを使用した場合に、コンポーネントの配置がどのように変わるか調べなさい。
またウィンドウのサイズを変えたときに、コンポーネントの配置がどのように変わるか調べなさい。
解答例
package com.techscore.ui.chapter4.exercise3; /** * VariousFlowLayoutFrame.java * TECHSCORE Javaユーザインタフェース4章 実習課題3 * * Copyright (c) 2004 Four-Dimensional Data, Inc. */ import java.awt.Color; import java.awt.FlowLayout; import javax.swing.JButton; import javax.swing.JFrame; public class VariousFlowLayoutFrame extends JFrame { public VariousFlowLayoutFrame(String label, FlowLayout layout) { super(label); setDefaultCloseOperation(EXIT_ON_CLOSE); getContentPane().setLayout(layout); JButton first = new JButton("first"); first.setBackground(Color.red); getContentPane().add(first); JButton second = new JButton("second"); second.setBackground(Color.yellow); getContentPane().add(second); JButton third = new JButton("third"); third.setBackground(Color.blue); getContentPane().add(third); pack(); } public static void main(String args[]) { //引数なし new VariousFlowLayoutFrame("Frow Layout", new FlowLayout()).setVisible(true); //引数1つのコンストラクタ //ウィンドウを拡大した場合、コンポーネントが左詰めになる。 new VariousFlowLayoutFrame("Frow Layout(LEFT)", new FlowLayout(FlowLayout.LEFT)).setVisible(true); //ウィンドウを拡大した場合、コンポーネントが中央に揃えられる。 new VariousFlowLayoutFrame("Frow Layout(CENTER)", new FlowLayout(FlowLayout.CENTER)).setVisible(true); //ウィンドウを拡大した場合、コンポーネントが右詰めになる。 new VariousFlowLayoutFrame("Frow Layout(RIGHT)", new FlowLayout(FlowLayout.RIGHT)).setVisible(true); //引数3つのコンストラクタ //2番目の引数にはコンポーネントの水平間隔、3番目の引数には垂直間隔が指定できます。 new VariousFlowLayoutFrame("Frow Layout(CENTER,100,50)", new FlowLayout(FlowLayout.CENTER, 100, 50)).setVisible(true); } }