Swing-cardlayout

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

SWING-CardLayoutクラス

前書き

クラス CardLayout は、コンテナ内の各コンポーネントをカードとして配置します。 一度に表示できるカードは1枚だけで、コンテナはカードのスタックとして機能します。

クラス宣言

以下は java.awt.CardLayout クラスの宣言です-

public class CardLayout
   extends Object
      implements LayoutManager2, Serializable

クラスコンストラクター

Sr.No. Constructor & Description
1

CardLayout()

サイズ0のギャップで新しいカードレイアウトを作成します。

2

CardLayout(int hgap, int vgap)

指定された水平方向と垂直方向のギャップで新しいカードレイアウトを作成します。

クラスメソッド

Sr.No. Method & Description
1

void addLayoutComponent(Component comp, Object constraints)

指定されたコンポーネントをこのカードレイアウトの名前の内部テーブルに追加します。

2

void addLayoutComponent(String name, Component comp)

レイアウトマネージャーがコンポーネントごとの文字列を使用する場合、コンポーネントcompをレイアウトに追加し、名前で指定された文字列に関連付けます。

3

void first(Container parent)

コンテナの最初のカードに切り替えます。

4

int getHgap()

コンポーネント間の水平方向のギャップを取得します。

5

float getLayoutAlignmentX(Container parent)

  • x* 軸に沿った配置を返します。
6

float getLayoutAlignmentY(Container parent)

  • y* 軸に沿った配置を返します。
7

int getVgap()

コンポーネント間の垂直方向のギャップを取得します。

8

void invalidateLayout(Container target)

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

9

void last(Container parent)

コンテナの最後のカードに切り替えます。

10

void layoutContainer(Container parent)

このカードレイアウトを使用して、指定されたコンテナをレイアウトします。

11

Dimension maximumLayoutSize(Container target)

指定されたターゲットコンテナ内のコンポーネントを指定して、このレイアウトの最大寸法を返します。

12

Dimension minimumLayoutSize(Container parent)

指定されたパネルの最小サイズを計算します。

13

void next(Container parent)

指定されたコンテナの次のカードに切り替えます。

14

Dimension preferredLayoutSize(Container parent)

このカードレイアウトを使用して、コンテナ引数の優先サイズを決定します。

15

void previous(Container parent)

指定されたコンテナの前のカードに切り替えます。

16

void removeLayoutComponent(Component comp)

指定されたコンポーネントをレイアウトから削除します。

17

void setHgap(int hgap)

コンポーネント間の水平方向の間隔を設定します。

18

void setVgap(int vgap)

コンポーネント間の垂直方向の間隔を設定します。

19

void show(Container parent, String name)

addLayoutComponentを使用して、指定された名前でこのレイアウトに追加されたコンポーネントに切り替えます。

20

String toString()

このカードレイアウトの状態の文字列表現を返します。

継承されるメソッド

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

  • java.lang.Object

CardLayoutの例

たとえば、 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.showCardLayoutDemo();
   }
   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 showCardLayoutDemo(){
      headerLabel.setText("Layout in action: CardLayout");

      final JPanel panel = new JPanel();
      panel.setBackground(Color.CYAN);
      panel.setSize(300,300);

      CardLayout layout = new CardLayout();
      layout.setHgap(10);
      layout.setVgap(10);
      panel.setLayout(layout);

      JPanel buttonPanel = new JPanel(new FlowLayout());
      buttonPanel.add(new JButton("OK"));
      buttonPanel.add(new JButton("Cancel"));

      JPanel textBoxPanel = new JPanel(new FlowLayout());
      textBoxPanel.add(new JLabel("Name:"));
      textBoxPanel.add(new JTextField(20));

      panel.add("Button", buttonPanel);
      panel.add("Text", textBoxPanel);
      final DefaultComboBoxModel panelName = new DefaultComboBoxModel();

      panelName.addElement("Button");
      panelName.addElement("Text");
      final JComboBox listCombo = new JComboBox(panelName);

      listCombo.setSelectedIndex(0);
      JScrollPane listComboScrollPane = new JScrollPane(listCombo);
      JButton showButton = new JButton("Show");

      showButton.addActionListener(new ActionListener() {
         public void actionPerformed(ActionEvent e) {
            String data = "";
            if (listCombo.getSelectedIndex() != -1) {
               CardLayout cardLayout = (CardLayout)(panel.getLayout());
               cardLayout.show(panel,
                  (String)listCombo.getItemAt(listCombo.getSelectedIndex()));
            }
            statusLabel.setText(data);
         }
      });
      controlPanel.add(listComboScrollPane);
      controlPanel.add(showButton);
      controlPanel.add(panel);
      mainFrame.setVisible(true);
   }
}

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

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

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

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

次の出力を確認します。

SWING CardLayout