位置:首頁 > Java技術 > Swing > Swing FlowLayout布局類

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 -- 此值指示每一行組件都應該是合理的容器的方向的後緣,例如,在左到右的方向的右側。

類構造函數

S.N. 構造函數 & 描述
1 FlowLayout() 
Constructs a new FlowLayout with a centered alignment and a default 5-unit horizontal and vertical gap.
2 FlowLayout(int align) 
Constructs a new FlowLayout with the specified alignment and a default 5-unit horizontal and vertical gap.
3 FlowLayout(int align, int hgap, int vgap) 
Creates a new flow layout manager with the indicated alignment and the indicated horizontal and vertical gaps.

類方法

S.N. 方法 & 描述
1 void addLayoutComponent(String name, Component comp) 
Adds the specified component to the layout.
2 int getAlignment() 
Gets the alignment for this layout.
3 int getHgap() 
Gets the horizontal gap between components.
4 int getVgap() 
Gets the vertical gap between components.
5 void layoutContainer(Container target) 
Lays out the container.
6 Dimension minimumLayoutSize(Container target) 
Returns the minimum dimensions needed to layout the visible components contained in the specified target container.
7 Dimension preferredLayoutSize(Container target) 
Returns the preferred dimensions for this layout given the visible components in the specified target container.
8 void removeLayoutComponent(Component comp) 
Removes the specified component from the layout.
9 void setAlignment(int align) 
Sets the alignment for this layout.
10 void setHgap(int hgap) 
Sets the horizontal gap between components.
11 void setVgap(int vgap) 
Sets the vertical gap between components.
12 String toString() 
Returns a string representation of this FlowLayout object and its values.

方法繼承

這個類從以下類繼承的方法:

  • java.lang.Object

FlowLayout 例子

選擇使用任何編輯器創建以下java程序在 D:/ > SWING > com > yiibai > gui >

SwingLayoutDemo.java
package com.yiibai.gui;

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

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

   public SwingLayoutDemo(){
      prepareGUI();
   }

   public static void main(String[] args){
      SwingLayoutDemo swingLayoutDemo = new SwingLayoutDemo();  
      swingLayoutDemo.showFlowLayoutDemo();       
   }
      
   private void prepareGUI(){
      mainFrame = new JFrame("Java SWING Examples");
      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.darkGray);
      panel.setSize(200,200);
      FlowLayout layout = new FlowLayout();
      layout.setHgap(10);              
      layout.setVgap(10);
      panel.setLayout(layout);        
      panel.add(new JButton("OK"));
      panel.add(new JButton("Cancel"));       

      controlPanel.add(panel);

      mainFrame.setVisible(true);  
   }
}

編譯程序,使用命令提示符。到 D:/ > SWING 然後輸出以下命令。

D:SWING>javac comyiibaiguiSwingLayoutDemo.java

如果冇有錯誤出現,這意味著編譯成功。使用下麵的命令來運行程序。

D:SWING>java com.yiibai.gui.SwingLayoutDemo

驗證下麵的輸出

SWING  FlowLayout