Swing GroupLayout類

GroupLayout類對組件進行分層分組,以便將它們放置在容器中。

類聲明

以下是javax.swing.GroupLayout類的聲明 -

public class GroupLayout
   extends Object
      implements LayoutManager2

字段

以下是javax.swing.GroupLayout類的字段 -

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

類構造函數

編號 構造函數 描述
1 GroupLayout(Container host)

類方法

編號 類方法 描述
1 void addLayoutComponent(Component component, Object constraints) 已將組件添加到父容器的通知。
2 void addLayoutComponent(String name, Component component) 已將組件添加到父容器的通知。
3 GroupLayout.ParallelGroup createBaselineGroup(boolean resizable, boolean anchorBaselineToTop) 創建並返回一個ParallelGroup,它沿著基線對齊它的元素。
4 GroupLayout.ParallelGroup createParallelGroup() 創建並返回一個Alignment.LEADING對齊的ParallelGroup
5 GroupLayout.ParallelGroup createParallelGroup(GroupLayout.Alignment alignment) 創建並返回具有指定對齊方式的ParallelGroup
6 GroupLayout.ParallelGroup createParallelGroup(GroupLayout.Alignment alignment, boolean resizable) 創建並返回具有指定對齊和調整大小行為的ParallelGroup
7 GroupLayout.SequentialGroup createSequentialGroup() 創建並返回SequentialGroup
8 boolean getAutoCreateContainerGaps() 如果自動創建容器與邊界容器的組件之間的間隙,則返回true
9 boolean getAutoCreateGaps() 如果自動創建組件之間的間隙,則返回true
10 boolean getHonorsVisibility() 返回在調整和定位組件時是否考慮組件可見性。
11 float getLayoutAlignmentX(Container parent) 返回沿x軸的對齊方式。
12 float getLayoutAlignmentY(Container parent) 返回沿y軸的對齊方式。
13 LayoutStyle getLayoutStyle() 返回用於計算組件之間的首選間隙的LayoutStyle
14 void invalidateLayout(Container parent) 使佈局無效,表明如果佈局管理器緩存了資訊,則應將其丟棄。
15 void layoutContainer(Container parent) 佈置指定的容器。
16 void linkSize(Component... components) 強制指定的組件具有相同的大小,無論其首選大小,最小大小或最大大小如何。
17 void linkSize(int axis, Component... components) 強制指定的組件沿指定的軸具有相同的大小,而不管它們的首選,最小或最大大小。
18 Dimension maximumLayoutSize(Container parent) 返回指定容器的最大大小。
19 Dimension minimumLayoutSize(Container parent) 返回指定容器的最小大小。
20 Dimension preferredLayoutSize(Container parent) 返回指定容器的首選大小。
21 void removeLayoutComponent(Component component) 通知已從父容器中刪除組件。
22 void replace(Component existingComponent, Component newComponent) 用新的組件替換現有組件。
23 void setAutoCreateContainerGaps(boolean autoCreateContainerPadding) 設置是否應自動創建容器與觸摸容器邊框的組件之間的間隙。
24 void setAutoCreateGaps(boolean autoCreatePadding) 設置是否應自動創建組件之間的間隙。
25 void setHonorsVisibility(boolean honorsVisibility) 設置在調整和定位組件時是否考慮組件可見性。
26 void setHonorsVisibility(Component component, Boolean honorsVisibility) 設置是否考慮組件可見性以確定大小和位置。
27 void setHorizontalGroup(GroupLayout.Group group) 設置用於沿橫軸定位和調整組件的組。
28 void setLayoutStyle(LayoutStyle layoutStyle) 設置用於計算組件之間首選間隙的LayoutStyle
29 void setVerticalGroup(GroupLayout.Group group) 沿垂直軸定位和調整組件大小設置組。
30 String toString() 返回此GroupLayout的字串表示形式。

方法繼承

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

  • java.lang.Object

GroupLayout示例

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

package com.zaixian.layout;


import java.awt.*;
import java.awt.event.*;
import javax.swing.*;

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

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

      // panel.setBackground(Color.darkGray);
      panel.setSize(200,200);
      GroupLayout layout = new GroupLayout(panel);
      layout.setAutoCreateGaps(true);
      layout.setAutoCreateContainerGaps(true);

      JButton btn1 = new JButton("Button - A");
      JButton btn2 = new JButton("Button - B");
      JButton btn3 = new JButton("Button - C");

      layout.setHorizontalGroup(layout.createSequentialGroup()
         .addComponent(btn1)
         .addGroup(layout.createSequentialGroup()
         .addGroup(layout.createParallelGroup(
         GroupLayout.Alignment.LEADING)
         .addComponent(btn2)
         .addComponent(btn3))));

      layout.setVerticalGroup(layout.createSequentialGroup()
         .addComponent(btn1)
         .addComponent(btn2)
         .addComponent(btn3));

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

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

GroupLayout


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