AWT BorderLayout类

1 什么是Java AWT BorderLayout

BorderLayout类将组件安排在五个区域中:东、西、北、南和中心。每个区域只能包含一个组件,并且每个区域中的每个组件都由相应的常量 NORTH、SOUTH、EAST、WEST 和 CENTER 标识。

2 Java AWT BorderLayout的语法

public class BorderLayout
   extends Object
      implements LayoutManager2, Serializable

3 Java AWT BorderLayout的构造方法

构造方法 描述
BorderLayout() 构造一个新的边框布局,组件之间没有间隙。
BorderLayout(int hgap, int vgap) 使用组件之间的指定间隙构造边框布局。

4 Java AWT BorderLayout的方法

方法 描述
void addLayoutComponent(Component comp, Object constraints) 使用指定的约束对象将指定的组件添加到布局。
void addLayoutComponent(String name, Component comp) 如果布局管理器使用每个组件的字符串,则将组件组合添加到布局中,并将其与名称指定的字符串相关联。
int getHgap() 返回组件之间的水平间隙。
float getLayoutAlignmentX(Container parent) 返回沿 x 轴的对齐方式。
float getLayoutAlignmentY(Container parent) 返回沿 y 轴的对齐方式。
int getVgap() 返回组件之间的垂直间隙。
void invalidateLayout(Container target) 使布局无效,表示如果布局管理器已缓存信息,则应将其丢弃。
void layoutContainer(Container target) 使用此边框布局布置容器参数。
Dimension maximumLayoutSize(Container target) 给定指定目标容器中的组件,返回此布局的最大尺寸。
Dimension minimumLayoutSize(Container target) 使用此布局管理器确定目标容器的最小大小。
Dimension preferredLayoutSize(Container target) 根据容器中的组件,使用此布局管理器确定目标容器的首选大小。
void removeLayoutComponent(Component comp) 从此边框布局中移除指定的组件。
void setHgap(int hgap) 设置组件之间的水平间隙。
void setVgap(int vgap) 设置组件之间的垂直间隙。
String toString() 返回此边框布局状态的字符串表示形式。

5 Java AWT BorderLayout的例子

让我们看一个简单的Java AWT BorderLayout类示例。

package com.yiidian;

import java.awt.*;
import java.awt.event.WindowAdapter;
import java.awt.event.WindowEvent;

public class AwtLayoutDemo {
   private Frame mainFrame;
   private Label headerLabel;
   private Label statusLabel;
   private Panel controlPanel;
   private Label msglabel;

   public AwtLayoutDemo(){
      prepareGUI();
   }

   public static void main(String[] args){
      AwtLayoutDemo  awtLayoutDemo = new AwtLayoutDemo();  
      awtLayoutDemo.showBorderLayoutDemo();       
   }
      
   private void prepareGUI(){
      mainFrame = new Frame("一点教程网:Java AWT Examples");
      mainFrame.setSize(400,400);
      mainFrame.setLayout(new GridLayout(3, 1));
      mainFrame.addWindowListener(new WindowAdapter() {
         public void windowClosing(WindowEvent windowEvent){
            System.exit(0);
         }        
      });    
      headerLabel = new Label();
      headerLabel.setAlignment(Label.CENTER);
      statusLabel = new Label();        
      statusLabel.setAlignment(Label.CENTER);
      statusLabel.setSize(350,100);

      msglabel = new Label();
      msglabel.setAlignment(Label.CENTER);
      msglabel.setText("Welcome to yiidian.com AWT Tutorial.");

      controlPanel = new Panel();
      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");      

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

      controlPanel.add(panel);

      mainFrame.setVisible(true);  
   }
}

输出结果为:

热门文章

优秀文章