解答例 - 実習課題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);
}
}

