Swing-springlayout

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

SWING-SpringLayoutクラス

前書き

クラス SpringLayout は、一連の制約に従って、関連付けられたコンテナの子を配置します。

クラス宣言

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

public class SpringLayout
   extends Object
      implements LayoutManager2

フィールド

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

  • static String BASELINE -コンポーネントのベースラインを指定します。
  • static String EAST -コンポーネントの境界矩形の右端を指定します。
  • static String HEIGHT -コンポーネントの境界矩形の高さを指定します。
  • static String HORIZONTAL_CENTER -コンポーネントの境界矩形の水平方向の中心を指定します。
  • static String NORTH -コンポーネントの境界矩形の上端を指定します。
  • static String SOUTH -コンポーネントの境界矩形の下端を指定します。
  • static String VERTICAL_CENTER -コンポーネントの境界矩形の垂直方向の中心を指定します。
  • static String WEST -コンポーネントの境界矩形の左端を指定します。
  • static String WIDTH -コンポーネントの境界矩形の幅を指定します。

クラスコンストラクター

Sr.No. Constructor & Description
1

SpringLayout()

新しいSpringLayoutを作成します。

クラスメソッド

Sr.No. Method & Description
1

void addLayoutComponent(Component component, Object constraints)

制約がSpringLayout.Constraintsのインスタンスである場合、制約を指定されたコンポーネントに関連付けます。

2

void addLayoutComponent(String name, Component c)

このレイアウトマネージャーはコンポーネントごとの文字列を使用しないため、効果はありません。

3

Spring getConstraint(String edgeName, Component c)

コンポーネントの指定されたエッジとその親の上端または左端の間の距離を制御するスプリングを返します。

4

SpringLayout.Constraints getConstraints(Component c)

指定されたコンポーネントの制約を返します。

5

float getLayoutAlignmentX(Container p)

0.5f(中央揃え)を返します。

6

float getLayoutAlignmentY(Container p)

0.5f(中央揃え)を返します。

7

void invalidateLayout(Container p)

レイアウトを無効にし、レイアウトマネージャーが情報をキャッシュしている場合は破棄することを示します。

8

void layoutContainer(Container parent)

指定されたコンテナをレイアウトします。

9

Dimension maximumLayoutSize(Container parent)

含まれるコンポーネントを指定して、指定されたコンテナの最大サイズの寸法を計算します。

10

Dimension minimumLayoutSize(Container parent)

含まれるコンポーネントを指定して、指定されたコンテナの最小サイズの寸法を計算します。

11

Dimension preferredLayoutSize(Container parent)

含まれるコンポーネントを指定して、指定されたコンテナの推奨サイズの寸法を計算します。

12

void putConstraint(String e1, Component c1, int pad, String e2, Component c2)

コンポーネントc1のエッジe1をコンポーネントc2のエッジe2にリンクします。エッジ間の距離は固定されています。

13

void putConstraint(String e1, Component c1, Spring s, String e2, Component c2)

コンポーネントc1のエッジe1をコンポーネントc2のエッジe2にリンクします。

14

void removeLayoutComponent(Component c)

指定されたコンポーネントに関連付けられている制約を削除します。

継承されるメソッド

このクラスは、次のクラスからメソッドを継承します-

  • java.lang.Object

SpringLayoutの例

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

SwingLayoutDemo.java

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

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

   public SwingSpringLayout(){
      prepareGUI();
   }
   public static void main(String[] args){
      SwingSpringLayout swingLayoutDemo = new SwingSpringLayout();
      swingLayoutDemo.showSpringLayoutDemo();
   }
   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 showSpringLayoutDemo(){
      headerLabel.setText("Layout in action: SpringLayout");
      SpringLayout layout = new SpringLayout();

      JPanel panel = new JPanel();
      panel.setLayout(layout);
      JLabel label = new JLabel("Enter Name: ");
      JTextField textField = new JTextField("", 15);
      panel.add(label);
      panel.add(textField);

      layout.putConstraint(SpringLayout.WEST, label,5, SpringLayout.WEST, controlPanel);
      layout.putConstraint(SpringLayout.NORTH, label,5, SpringLayout.NORTH, controlPanel);
      layout.putConstraint(SpringLayout.WEST, textField,5, SpringLayout.EAST, label);
      layout.putConstraint(SpringLayout.NORTH, textField,5, SpringLayout.NORTH,
         controlPanel);

      layout.putConstraint(SpringLayout.EAST, panel,5, SpringLayout.EAST, textField);
      layout.putConstraint(SpringLayout.SOUTH, panel,5, SpringLayout.SOUTH, textField);
      controlPanel.add(panel);
      mainFrame.setVisible(true);
   }
}

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

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

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

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

次の出力を確認します。

SWING SpringLayout