目次> 第3章> 3.2 | TOPUPPREVNEXT |
GridLayout を用いて、ラベルを格子状にならべてみましょう。
プログラム MyProfile.java を 適当なフォールダにダウンロードしてください。
下図の中の赤字の部分が、前節の MyAddress.java との違いです。
001:// 住所・氏名・所属 の表示(その1)
002:
003:import java.awt.* ;
004:import javax.swing.* ;
005:
006:public class MyProfile extends JFrame {
007:
008: public MyProfile() {
009: super("私の住所");
010: setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
011: Container pane = getContentPane();
012: pane.setLayout( new GridLayout(0, 2) );
013:
014: pane.add( new JLabel("氏名:") );
015: pane.add( new JLabel("藤村 光") );
016: pane.add( new JLabel("住所:") );
017: pane.add( new JLabel("相模原市御園") );
018: pane.add( new JLabel("") );
019: pane.add( new JLabel("4丁目6−8") );
020: pane.add( new JLabel("所属:") );
021: pane.add( new JLabel("情報処理教育室") );
022:
023: pack();
024: setVisible(true);
025: }
026:
027: public static void main(String[] args) {
028: new MyProfile();
029: }
030:}
クラス名を MyProfile にしたため、 プログラム名とコンストラクタ名も変更になっています。
12行目で、 クラス GridLayout のインスタンスを指定しています。 GridLayout には若干ややこしい規則があるのですが、
GridLayout についてもう少し詳しい説明は、 Appendix F java.awt.GridLayout にあります。
14〜21行目で複数のラベルを pane に貼り付けています。 4×2の領域に、左から右、上から下へと順に貼りつけられます。 順次貼り付けられますから、間を空けたければ18行目のように、空のラベルを貼り付けます。
コンパイルし、実行してみましょう。実行すると下図のようなウィンドウが表示されます。
ウィンドウの大きさをかえても、4×2 の配置は変わりません。 また、8個のラベルは全て同一の形状になります。
ウィンドウを広げると何が起こるのかを、もう少し詳しく見てみましょう。 JLabel に 枠をつけて表示し(下図左)、 ウィンドウを広げてみます(下図右)。
内側の ラベル自体が 広がっていることがわかります。
FlowLayout では、ウィンドウの大きさの変化が内側の JLabel に伝わりません。
GridLayout の場合も、貼り付けるラベルの間隔を指定できます。 横方向の間隔を 5ドット、 縦方向の間隔を 10ドットにしみましょう。
更新日:2006/04/04 | TOPUPPREVNEXT |