FlowLayout

FlowLayout مدیر لایه پیشفرض JPanel است. با استفاده از FlowLayout کنترل‌ها را در یک سطر تراز می‌کنیم. اگر عرض container کمتر از عرض همه کنترل‌های باشد، یعنی کنترل‌ها نتوانند در یک سطر قرار بگیرند، به صورت خودکار در دو یا چند سطر قرار می‌گیرند. به کد زیر توجه کنید :

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

public class FrameDemo 
{
    public static void main(String[] args) 
    {
        JFrame frame1 = new JFrame("FlowLayout Demo"); 
        frame1.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);        
        frame1.setLayout(new FlowLayout());
        frame1.setFont(new Font("Helvetica", Font.PLAIN, 14));
        
        frame1.add(new JButton("Button 1"));
        frame1.add(new JButton("Button 2"));
        frame1.add(new JButton("Button 3"));
        frame1.add(new JButton("Button 4"));
        
        
        frame1.setSize(430 ,315);
        frame1.setVisible(true);
    }   
}

خروجی کد بالا به صورت زیر است :
Frame-layout-01
حال پنجره را کوچک و بزرگ کرده و نتیجه را مشاهده نمایید :
Frame-layout-02
سازنده کلاس FlowLayout را در سه حالت زیر می‌توان مقداردهی کرد :

public FlowLayout()

public FlowLayout(int alignment)

public FlowLayout(int alignment, int hgap, int vgap)

در حالت پیشفرض کنترل‌ها در وسط قرار می‌گیرند مگر اینکه نحوه تراز بندی آنها را با استفاده از ثابت‌های زیر مشخص کنیم :

  • LEFT
  • FCENTER
  • RIGHT

حال خط 11 کد بالا را به صورت زیر تغییر دهید :

frame1.setLayout(new FlowLayout(FlowLayout.LEFT));

با اجرای کد مشاهده می‌کنید که کنترل‌ها نسبه به سمت چپ container تراز شده‌اند :
flowlaout-swing-01