初心者向けのJava講座です。一緒にJavaを勉強しませんか?
はじめてのJava入門初心者向けのJava講座 |
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です。)