ベースラインに沿って垂直方向に揃えるかどうかを設定する
広告
レイアウトマネージャーとしてFlowLayoutを設定している場合、同じ縦位置にあるコンポーネントは中央位置に沿って垂直方向に揃えられます。
ここではベースラインに沿って垂直方向に揃えるように設定する方法を確認します。設定を行うにはFlowLayoutクラスで用意されている「setAlignOnBaseline」メソッドを使います。
public void setAlignOnBaseline(boolean alignOnBaseline)
コンポーネントをベースラインに沿って垂直方向に揃えるかどうかを設定しま す。ベースラインを持たないコンポーネントは中央に配置されます。デフォル トは false です。 パラメータ: alignOnBaseline - コンポーネントをベースラインに沿って 垂直方向に揃え るかどうか
※このメソッドはJava SE6から用意されたメソッドです。
引数にはベースラインに沿って揃えるかどうかを表すboolean型の値を指定します。ベースラインに沿って揃える場合には「true」を設定して下さい。
実際の使い方は次のようになります。
FlowLayout layout = new FlowLayout(); layout.setAlignOnBaseline(true);
サンプルプログラム
では簡単なサンプルを作成して試してみます。
import javax.swing.*; import java.awt.Font; import java.awt.Color; import java.awt.FlowLayout; import java.awt.BorderLayout; public class FlowLayoutTest5 extends JFrame{ public static void main(String[] args){ FlowLayoutTest5 frame = new FlowLayoutTest5(); frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); frame.setBounds(10, 10, 300, 200); frame.setTitle("タイトル"); frame.setVisible(true); } FlowLayoutTest5(){ JLabel label1 = new JLabel("ABC"); label1.setFont(new Font(Font.DIALOG, Font.PLAIN, 32)); label1.setOpaque(true); label1.setBackground(Color.WHITE); JLabel label2 = new JLabel("ABC"); label2.setFont(new Font(Font.DIALOG, Font.PLAIN, 12)); label2.setOpaque(true); label2.setBackground(Color.WHITE); JLabel label3 = new JLabel("ABC"); label3.setFont(new Font(Font.DIALOG, Font.PLAIN, 16)); label3.setOpaque(true); label3.setBackground(Color.WHITE); JPanel p = new JPanel(); FlowLayout layout = new FlowLayout(); layout.setAlignOnBaseline(true); p.setLayout(layout); p.add(label1); p.add(label2); p.add(label3); getContentPane().add(p, BorderLayout.CENTER); } }
上記をコンパイルした後で実行すると次のように表示されます。
少し分かりにくいですが配置されている各コンポーネントに表示されている文字のベースラインに沿って揃えられているのが確認できます。
( Written by Tatsuo Ikura )
著者 / TATSUO IKURA
これから IT 関連の知識を学ばれる方を対象に、色々な言語でのプログラミング方法や関連する技術、開発環境構築などに関する解説サイトを運営しています。