Swing GridBagLayout類

GridBagLayout類以水準和垂直方式排列組件。

類聲明

以下是java.awt.GridBagLayout類的聲明 -

public class GridBagLayout
   extends Object
      implements LayoutManager2, Serializable

字段

以下是java.awt.GridBagLayout類的字段 -

  • static int DEFAULT_SIZE - 指示組件的大小或間隙應用於特定範圍值。
  • static int PREFERRED_SIZE - 表示組件的首選大小或間隙應用於特定範圍值。

類構造函數

編號 構造函數 描述
1 GridBagLayout() 創建網格包佈局管理器。

類方法

編號 類方法 描述說明
1 void addLayoutComponent(Component comp, Object constraints) 使用指定的約束對象將指定的組件添加到佈局中。
2 void addLayoutComponent(String name, Component comp) 將具有指定名稱的指定組件添加到佈局中。
3 protected void adjustForGravity(GridBagConstraints constraints, Rectangle r) 調節XY的寬度和高度,字段根據約束幾何結構和填充正確的值。
4 protected void AdjustForGravity(GridBagConstraints constraints, Rectangle r) 此方法已過時,僅提供向後相容性; 應該調用新的adjustForGravity方法。
5 protected void arrangeGrid(Container parent) 佈局網格。
6 protected void ArrangeGrid(Container parent) 此方法已過時,僅供向後相容; 新代碼應該調用arrangeGrid來代替。
7 GridBagConstraints getConstraints(Component comp) 獲取指定組件的約束。
8 float getLayoutAlignmentX(Container parent) 返回沿x軸的對齊方式。
9 float getLayoutAlignmentY(Container parent) 返回沿y軸的對齊方式。
10 int[][] getLayoutDimensions() 確定佈局網格的列寬和行高。
11 protected GridBagLayoutInfo getLayoutInfo(Container parent, int sizeflag) 為當前託管子集填充GridBagLayoutInfo的實例。
12 protected GridBagLayoutInfo GetLayoutInfo(Container parent, int sizeflag) 此方法已過時,僅供向後相容; 新代碼應該調用setLayoutInfo
13 Point getLayoutOrigin() 在目標容器的圖形座標空間中確定佈局區域的原點。
14 double[][] getLayoutWeights() 確定佈局網格的列和行的權重。
15 protected Dimension getMinSize(Container parent, GridBagLayoutInfo info) 根據getLayoutInfo()中的資訊計算出master的最小值。
16 protected Dimension GetMinSize(Container parent, GridBagLayoutInfo info) 此方法已過時,僅供向後相容; 新代碼應該調用setMinSize方法。
17 void invalidateLayout(Container target) 使佈局無效,表明如果佈局管理器緩存了資訊,則應將其丟棄。
18 void layoutContainer(Container parent) 使用此網格包佈局佈置指定的容器。
19 Point location(int x, int y) 確定佈局網格中的哪個單元格包含(x,y)指定的點。
20 protected GridBagConstraints lookupConstraints(Component comp) 檢索指定組件的約束。
21 Dimension maximumLayoutSize(Container target) 給定指定目標容器中的組件,返回此佈局的最大值。
22 Dimension minimumLayoutSize(Container parent) 使用此網格包佈局確定父容器的最小值。
23 Dimension preferredLayoutSize(Container parent) 使用此網格包佈局確定父容器的首選大小。
24 void removeLayoutComponent(Component comp) 從此佈局中刪除指定的組件。
25 void setConstraints(Component comp, GridBagConstraints constraints) 在此佈局中設置指定組件的約束。
26 String toString() 返回此網格包佈局值的字串表示形式。

方法繼承

該類繼承以下類中的方法 -

java.lang.Object

GridBagLayout示例

使用編輯器創建以下Java程式:GridBagLayout.java

package com.zaixian.layout;
import java.awt.*;
import java.awt.event.*;
import javax.swing.*;


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

   public GridBagLayoutDemo(){
      prepareGUI();
   }
   public static void main(String[] args){
       GridBagLayoutDemo swingLayoutDemo = new GridBagLayoutDemo();
      swingLayoutDemo.showGridBagLayoutDemo();
   }
   private void prepareGUI(){
      mainFrame = new JFrame("Java SWING GridBagLayoutDemo(xuhuhu.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 showGridBagLayoutDemo(){
      headerLabel.setText("Layout in action: GridBagLayout");

      JPanel panel = new JPanel();
      panel.setBackground(Color.darkGray);
      panel.setSize(300,300);
      GridBagLayout layout = new GridBagLayout();

      panel.setLayout(layout);
      GridBagConstraints gbc = new GridBagConstraints();

      gbc.fill = GridBagConstraints.HORIZONTAL;
      gbc.gridx = 0;
      gbc.gridy = 0;
      panel.add(new JButton("Button - A"),gbc);

      gbc.gridx = 1;
      gbc.gridy = 0;
      panel.add(new JButton("Button - B"),gbc);

      gbc.fill = GridBagConstraints.HORIZONTAL;
      gbc.ipady = 20;
      gbc.gridx = 0;
      gbc.gridy = 1;
      panel.add(new JButton("Button - C"),gbc);

      gbc.gridx = 1;
      gbc.gridy = 1;
      panel.add(new JButton("Button - D"),gbc);

      gbc.gridx = 0;
      gbc.gridy = 2;
      gbc.fill = GridBagConstraints.HORIZONTAL;
      gbc.gridwidth = 2;
      panel.add(new JButton("Button - E"),gbc);

      controlPanel.add(panel);
      mainFrame.setVisible(true);
   }
}

執行上面示例代碼,得到以下結果:

GridBagLayout


上一篇: Swing LayoutManager介面 下一篇: Swing Menu類