FlowLayout(フローレイアウト)

フローレイアウトは横一列にGUIコンポーネントを配置します。
また横一列に配置できない場合は2列目に配置されます。
フローレイアウトはjava.awtパッケージに属するFlowLayoutクラスを作成します。
FlowLayoutクラスのインスタンスを作成し、ContainerクラスのsetLayoutメソッドの引数に FlowLayoutクラスの参照変数を指定します。

サンプルプログラム(GUISwing17.java)

import javax.swing.*;
import java.awt.*;

public class GUISwing17{
   public static void main(String[] args) {

      //フレーム表示
      JFrame f = new JFrame("フローレイアウト");
	  
	  //コンテンツ区画の取得
	  Container cont =  f.getContentPane();
	  
	  //ボタンを作る
	  JButton jb = new JButton("A");
	  JButton jb1 = new JButton("B");
	  JButton jb2 = new JButton("C");
	  JButton jb3 = new JButton("D");
	  JButton jb4 = new JButton("E");
	
	  FlowLayout flow = new FlowLayout();
	  cont.setLayout(flow);
	  
	  
	  //ボタンをコンテンツ区画に追加する
	  cont.add(jb);
	 cont.add(jb1);
	 cont.add(jb2);
	 cont.add(jb3);
	 cont.add(jb4);
	  //フレームのサイズを指定
      f.setSize(400, 200);
	  //フレームの表示・非表示を指定
      f.setVisible(true);
	  //×を押した時の処理
	  f.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
	    
   }
}

プログラムをコピーする場合すべて選択をクリックしてください。

Sponsored link

コンパイル・実行してみます。
以下のようなWindowが表示されます。

このように横一列に配列されました
しかしここでWindowサイズの横幅を変えてみます。

このように横幅に入りきれない場合は2列目に移ります。
しかしここで重要なことがあります。
それはコンポーネントの配置がデフォルトでは中央揃えになります。
もしその配置を指定したい場合はFlowLayoutクラスのコンストラクタの引数に指定しなければいけません。

フローレイアウトの整列

フィールド名
整列方法
LEFT
各行のGUIコンポーネントを左揃えにします。
CENTER
各行のGUIコンポーネントを中央揃えにします。
RIGHT
各行のGUIコンポーネントを右揃えにします。
LEADING
各行のGUIコンポーネントをコンテナの方向のリーディングエッジに揃える。
TRAILING
各行のGUIコンポーネントをコンテナの方向のトレイリングエッジに揃える。

サンプルプログラム(GUISwing17_1.java)

import javax.swing.*;
import java.awt.*;

public class GUISwing17_1{
   public static void main(String[] args) {

      //フレーム表示
      JFrame f = new JFrame("フローレイアウト");
	  
	  //コンテンツ区画の取得
	  Container cont =  f.getContentPane();
	  
	  //ボタンを作る
	  JButton jb = new JButton("A");
	  JButton jb1 = new JButton("B");
	  JButton jb2 = new JButton("C");
	  JButton jb3 = new JButton("D");
	  JButton jb4 = new JButton("E");
	
	  FlowLayout flow = new FlowLayout(FlowLayout.RIGHT,15,10);
	  cont.setLayout(flow);
	  
	  
	  //ボタンをコンテンツ区画に追加する
	  cont.add(jb);
	 cont.add(jb1);
	 cont.add(jb2);
	 cont.add(jb3);
	 cont.add(jb4);
	  //フレームのサイズを指定
      f.setSize(400, 200);
	  //フレームの表示・非表示を指定
      f.setVisible(true);
	  //×を押した時の処理
	  f.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
	    
   }
}

プログラムをコピーする場合すべて選択をクリックしてください。

Sponsored link

コンパイル・実行してみます。
以下のようなWindowが表示されます。

このように右揃えになります。
今回は引数に new FlowLayout(FlowLayout.RIGHT,15,10);となっています。
それはGUIコンポーネントの間隔を指定しているのです。
つまり水平間隔に15,垂直間隔に10指定しています。
何も記述しなければデフォルトで5になります。

コンポーネントの配置する挿入指定

今度はGUIコンポーネントの挿入する順番を指定していきます。
まずはプログラムを見ていきます。

サンプルプログラム(GUISwing17_2.java)

import javax.swing.*;
import java.awt.*;

public class GUISwing17_2{
   public static void main(String[] args) {

      //フレーム表示
      JFrame f = new JFrame("フローレイアウト");
	  
	  //コンテンツ区画の取得
	  Container cont =  f.getContentPane();
	  
	  //ボタンを作る
	  JButton jb = new JButton("A");
	  JButton jb1 = new JButton("B");
	  JButton jb2 = new JButton("C");
	  JButton jb3 = new JButton("D");
	  JButton jb4 = new JButton("E");
	
	  FlowLayout flow = new FlowLayout(FlowLayout.RIGHT,15,10);
	  cont.setLayout(flow);
	  
	  
	  //ボタンをコンテンツ区画に追加する
	  cont.add(jb);
	 cont.add(jb1);
	 cont.add(jb2,0);
	 cont.add(jb3,2);
	 cont.add(jb4,3);
	  //フレームのサイズを指定
      f.setSize(400, 200);
	  //フレームの表示・非表示を指定
      f.setVisible(true);
	  //×を押した時の処理
	  f.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
	    
   }
}

プログラムをコピーする場合すべて選択をクリックしてください。

コンパイル・実行してみます。
以下のようなWindowが表示されます。
このようにadd()メソッドの第二引数に位置を指定していきます。(先頭は0です。)

ページのトップへ戻る