AWT GridLayout类

1 什么是Java AWT GridLayout

类GridLayout在矩形网格中排列组件。

2 Java AWT GridLayout的语法

public class GridLayout
   extends Object
      implements LayoutManager, Serializable

3 Java AWT GridLayout的构造方法

构造方法 描述
GridLayout() 在单行中创建一个网格布局,每个组件默认为一列。
GridLayout(int rows, int cols) 创建具有指定行数和列数的网格布局。
GridLayout(int rows, int cols, int hgap, int vgap) 创建具有指定行数和列数的网格布局。

4 Java AWT GridLayout的方法

方法 描述
void addLayoutComponent(String name, Component comp) 将具有指定名称的指定组件添加到布局中。
int getColumns() 获取此布局中的列数。
int getHgap() 获取组件之间的水平间隙。
int getRows() 获取此布局中的行数。
int getVgap() 获取组件之间的垂直间隙。
void layoutContainer(Container parent) 使用此布局布置指定的容器。
Dimension minimumLayoutSize(Container parent) 使用此网格布局确定容器参数的最小大小。
Dimension preferredLayoutSize(Container parent) 使用此网格布局确定容器参数的首选大小。
void removeLayoutComponent(Component comp) 从布局中移除指定的组件。
void setColumns(int cols) 将此布局中的列数设置为指定值。
void setHgap(int hgap) 将组件之间的水平间隙设置为指定值。
void setRows(int rows) 将此布局中的行数设置为指定值。
void setVgap(int vgap) 将组件之间的垂直间隙设置为指定值。
String toString() 返回此网格布局值的字符串表示形式。

5 Java AWT GridLayout的例子

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

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.showGridLayoutDemo();       
   }
      
   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 showGridLayoutDemo(){
      headerLabel.setText("Layout in action: GridLayout");      

      Panel panel = new Panel();
      panel.setBackground(Color.darkGray);
      panel.setSize(300,300);
      GridLayout layout = new GridLayout(0,3);
      layout.setHgap(10);
      layout.setVgap(10);
      
      panel.setLayout(layout);        
      panel.add(new Button("Button 1"));
      panel.add(new Button("Button 2")); 
      panel.add(new Button("Button 3")); 
      panel.add(new Button("Button 4")); 
      panel.add(new Button("Button 5")); 
      controlPanel.add(panel);
      mainFrame.setVisible(true);  
   }
}

输出结果为:

热门文章

优秀文章