Swing FlowLayout類

FlowLayout類用於從左到右流動排列組件。

類聲明

以下是java.awt.FlowLayout類的聲明 -

public class FlowLayout
   extends Object
      implements LayoutManager, Serializable

字段

以下是java.awt.BorderLayout類的字段 -

  • static int CENTER - 此值指示每行組件應居中。
  • static int LEADING - 此值指示應將每行組件對齊到容器方向的前沿。例如,從左到右的方向向左。
  • static int LEFT - 此值指示每行組件應左對齊。
  • static int RIGHT - 此值指示每行組件應右對齊。
  • static int TRAILING - 此值指示應將每行組件對齊到容器方向的後沿。例如,從左到右的方向向右。

類構造函數

編號 構造函數 描述
1 FlowLayout() 構造一個具有居中對齊和默認5單位水準和垂直間隙的新FlowLayout
2 FlowLayout(int align) 使用指定的對齊方式構造一個新的FlowLayout,並使用默認為5單位水準和垂直間隙。
3 FlowLayout(int align, int hgap, int vgap) 創建一個新的流佈局管理器,其中包含指示的對齊方式以及指示的水準和垂直間隙。

類方法

編號 類方法 描述
1 void addLayoutComponent(String name, Component comp) 將指定的組件添加到佈局中。
2 int getAlignment() 獲取此佈局的對齊方式。
3 int getHgap() 獲取組件之間的水準間隙。
4 int getVgap() 獲取組件之間的垂直間隙。
5 void layoutContainer(Container target) 佈局容器。
6 Dimension minimumLayoutSize(Container target) 返回佈局指定目標容器中包含的可見組件所需的最小值。
7 Dimension preferredLayoutSize(Container target) 給定指定目標容器中的可見組件,返回此佈局的首選尺寸。
8 void removeLayoutComponent(Component comp) 從佈局中刪除指定的組件。
9 void setAlignment(int align) 設置此佈局的對齊方式。
10 void setHgap(int hgap) 設置組件之間的水準間隙。
11 void setVgap(int vgap) 設置組件之間的垂直間隙。
12 String toString() 返回此FlowLayout對象及其值的字串表示形式。

方法繼承

該類繼承以下類中的方法 -

  • java.lang.Object

FlowLayout示例

使用編輯器創建以下Java程式:FlowLayoutDemo.java

package com.zaixian.layout;

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

public class FlowLayoutDemo {
    private JFrame mainFrame;
    private JLabel headerLabel;
    private JLabel statusLabel;
    private JPanel controlPanel;

    public FlowLayoutDemo() {
        prepareGUI();
    }

    public static void main(String[] args) {
        FlowLayoutDemo swingLayoutDemo = new FlowLayoutDemo();
        swingLayoutDemo.showFlowLayoutDemo();
    }

    private void prepareGUI(){
      mainFrame = new JFrame("Java SWING FlowLayout示例(xuhuhu.com)");
      mainFrame.setSize(400,400);
      mainFrame.setLayout(new GridLayout(3, 1));

      headerLabel = new JLabel("",JLabel.CENTER );
      statusLabel = new JLabel("",JLabel.CENTER);
      statusLabel.setSize(350,100);

      mainFrame.addWindowListener(new WindowAdapter() {
         public void windowClosing(WindowEvent windowEvent){
            System.exit(0);
         }
      });
      controlPanel = new JPanel();
      controlPanel.setLayout(new FlowLayout());

      mainFrame.add(headerLabel);
      mainFrame.add(controlPanel);
      mainFrame.add(statusLabel);
      mainFrame.setVisible(true);
   }

    private void showFlowLayoutDemo() {
        headerLabel.setText("Layout in action: FlowLayout");

        JPanel panel = new JPanel();
        panel.setBackground(Color.blue);
        panel.setSize(200, 200);
        FlowLayout layout = new FlowLayout();
        layout.setHgap(10);
        layout.setVgap(10);

        panel.setLayout(layout);
        panel.add(new JButton("確定"));
        panel.add(new JButton("取消"));
        controlPanel.add(panel);
        mainFrame.setVisible(true);
    }
}

執行上面示例代碼,得到以下結果:

FlowLayout示例


上一篇: Swing LayoutManager介面 下一篇: Swing Menu類