位置:首页 > Java技术 > Swing > Swing BorderLayout布局

Swing BorderLayout布局

BorderLayout类排列的组成部分,以适应在五个区域:东部,西部,北部,南部和中心。每个区域只能包含一个组件,每个组件在每个区域确定相应的固定NORTH,SOUTH,EAST,WEST,和CENTER。

类声明

以下是声明 java.awt.BorderLayout类:

public class BorderLayout
   extends Object
      implements LayoutManager2, Serializable

字段域

下面是java.awt.BorderLayout类的字段:

  • static String AFTER_LAST_LINE -- Synonym for PAGE_END.

  • static String AFTER_LINE_ENDS -- Synonym for LINE_END.

  • static String BEFORE_FIRST_LINE -- Synonym for PAGE_START.

  • static String BEFORE_LINE_BEGINS -- Synonym for LINE_START.

  • static String CENTER -- The center layout constraint (middle of container).

  • static String EAST -- The east layout constraint (right side of container).

  • static String LINE_END -- The component goes at the end of the line direction for the layout.

  • static String LINE_START -- The component goes at the beginning of the line direction for the layout.

  • static String NORTH -- The north layout constraint (top of container).

  • static String PAGE_END -- The component comes after the last line of the layout's content.

  • static String PAGE_START -- The component comes before the first line of the layout's content.

  • static String SOUTH -- The south layout constraint (bottom of container).

  • static String WEST -- The west layout constraint (left side of container).

类构造函数

S.N. 构造函数 & 描述
1 BorderLayout() 
Constructs a new border layout with no gaps between components.
2 BorderLayout(int hgap, int vgap) 
Constructs a border layout with the specified gaps between components.

类方法

S.N. 方法 & 描述
1 void addLayoutComponent(Component comp, Object constraints) 
Adds the specified component to the layout, using the specified constraint object.
2 void addLayoutComponent(String name, Component comp) 
If the layout manager uses a per-component string, adds the component comp to the layout, associating it with the string specified by name.
3 int getHgap() 
Returns the horizontal gap between components.
4 float getLayoutAlignmentX(Container parent) 
Returns the alignment along the x axis.
5 float getLayoutAlignmentY(Container parent) 
Returns the alignment along the y axis.
6 int getVgap() 
Returns the vertical gap between components.
7 void invalidateLayout(Container target) 
Invalidates the layout, indicating that if the layout manager has cached information it should be discarded.
8 void layoutContainer(Container target) 
9 Dimension maximumLayoutSize(Container target) 
Returns the maximum dimensions for this layout given the components in the specified target container.
10 Dimension minimumLayoutSize(Container target) 
Determines the minimum size of the target container using this layout manager.
11 Dimension preferredLayoutSize(Container target)
Determines the preferred size of the target container using this layout manager, based on the components in the container.
12 void removeLayoutComponent(Component comp) 
Removes the specified component from this border layout.
13 void setHgap(int hgap) 
Sets the horizontal gap between components.
14 void setVgap(int vgap) 
Sets the vertical gap between components.
15 String toString() 
Returns a string representation of the state of this border layout.

方法继承

这个类从以下类继承的方法:

  • java.lang.Object

BorderLayout 例子

选择使用任何编辑器创建以下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.showBorderLayoutDemo();       
   }
      
   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 showBorderLayoutDemo(){
      headerLabel.setText("Layout in action: BorderLayout");      

      JPanel panel = new JPanel();
      panel.setBackground(Color.darkGray);
      panel.setSize(300,300);
      BorderLayout layout = new BorderLayout();
      layout.setHgap(10);
      layout.setVgap(10);
      panel.setLayout(layout);        
	  
      panel.add(new JButton("Center"),BorderLayout.CENTER);
      panel.add(new JButton("Line Start"),BorderLayout.LINE_START); 
      panel.add(new JButton("Line End"),BorderLayout.LINE_END);
      panel.add(new JButton("East"),BorderLayout.EAST);   
      panel.add(new JButton("West"),BorderLayout.WEST); 
      panel.add(new JButton("North"),BorderLayout.NORTH); 
      panel.add(new JButton("South"),BorderLayout.SOUTH); 

      controlPanel.add(panel);

      mainFrame.setVisible(true);  
   }
}

编译程序,使用命令提示符。到 D:/ > SWING 然后输出以下命令。

D:SWING>javac comyiibaiguiSwingLayoutDemo.java

如果没有错误出现,这意味着编译成功。使用下面的命令来运行程序。

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

验证下面的输出

SWING BorderLayout