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 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
使用編輯器建立以下Java程式:GridBagLayout.java
package com.yiibai.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(tw511.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);
}
}
執行上面範例程式碼,得到以下結果: