橘子味的心
标题: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.yiibai.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示例(yiibai.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);
    }
}

执行上面示例代码,得到以下结果:


目录

分类