Swing-grouplayout

提供:Dev Guides
移動先:案内検索

SWING-GroupLayoutクラス

前書き

クラス GroupLayout は、コンポーネントをコンテナに配置するためにコンポーネントを階層的にグループ化します。

クラス宣言

以下は javax.swing.GroupLayout クラスの宣言です-

public class GroupLayout
   extends Object
      implements LayoutManager2

フィールド

以下は、 javax.swing.GroupLayout クラスのフィールドです-

  • static int DEFAULT_SIZE -特定の範囲値に使用されるコンポーネントまたはギャップのサイズを示します。
  • static int Preferred_SIZE -特定の範囲値に使用するコンポーネントまたはギャップの推奨サイズを示します。

クラスコンストラクター

Sr.No. Constructor & Description
1

GroupLayout(Container host)

指定されたコンテナのGroupLayoutを作成します。

クラスメソッド

Sr.No. Method & Description
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の例

たとえば、 D:/> SWING> com> finddevguides> gui> の任意のエディターを使用して、次のJavaプログラムを作成します。

SwingLayoutDemo.java

package com.finddevguides.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.showGroupLayoutDemo();
   }
   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 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 1");
      JButton btn2 = new JButton("Button 2");
      JButton btn3 = new JButton("Button 3");

      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);
   }
}

コマンドプロンプトを使用してプログラムをコンパイルします。 D:/> SWING に移動して、次のコマンドを入力します。

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

エラーが発生しない場合、コンパイルが成功したことを意味します。 次のコマンドを使用してプログラムを実行します。

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

次の出力を確認します。

SWING GroupLayout