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)

根據約束幾何形狀和填充調整x、y寬度和高度欄位到正確的值。

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 java.awt.GridBagLayoutInfo getLayoutInfo(Container parent, int sizeflag)

為當前管理的子項填充GridBagLayoutInfo例項。

12

protected java.awt.GridBagLayoutInfo GetLayoutInfo(Container parent, int sizeflag)

此方法已過時,僅出於向後相容性而提供;新程式碼應呼叫getLayoutInfo。

13

Point getLayoutOrigin()

確定佈局區域的原點,位於目標容器的圖形座標空間中。

14

double[][] getLayoutWeights()

確定佈局網格的列和行的權重。

15

protected Dimension getMinSize(Container parent, java.awt.GridBagLayoutInfo info)

根據getLayoutInfo()中的資訊計算主體的最小大小。

16

protected Dimension GetMinSize(Container parent, java.awt.GridBagLayoutInfo info)

此方法已過時,僅出於向後相容性而提供;新程式碼應呼叫getMinSize。

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 程式,例如在D:/ > SWING > com > tutorialspoint > gui >中。

SwingLayoutDemo.java

package com.tutorialspoint.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.showGridBagLayoutDemo();       
   }
   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 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 1"),gbc);

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

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

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

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

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

使用命令提示符編譯程式。轉到D:/ > SWING並鍵入以下命令。

D:\SWING>javac com\tutorialspoint\gui\SwingLayoutDemo.java

如果未出現錯誤,則表示編譯成功。使用以下命令執行程式。

D:\SWING>java com.tutorialspoint.gui.SwingLayoutDemo

驗證以下輸出。

SWING  GridBagLayout
swing_layouts.htm
廣告