Classe AWT CardLayout

Introdução

A classe CardLayoutorganiza cada componente no contêiner como um cartão. Apenas uma carta é visível por vez, e o contêiner atua como uma pilha de cartas.

Declaração de classe

A seguir está a declaração para java.awt.CardLayout classe:

public class CardLayout
   extends Object
      implements LayoutManager2, Serializable

Construtores de classe

SN Construtor e descrição
1

CardLayout()

Cria um novo layout de cartão com lacunas de tamanho zero.

2

CardLayout(int hgap, int vgap)

Cria um novo layout de cartão com as lacunas horizontais e verticais especificadas.

Métodos de aula

SN Método e Descrição
1

void addLayoutComponent(Component comp, Object constraints)

Adiciona o componente especificado à tabela de nomes interna do layout deste cartão.

2

void addLayoutComponent(String name, Component comp)

Se o gerenciador de layout usar uma string por componente, adiciona o componente comp ao layout, associando-o à string especificada por nome.

3

void first(Container parent)

Vira para a primeira carta do contêiner.

4

int getHgap()

Obtém a lacuna horizontal entre os componentes.

5

float getLayoutAlignmentX(Container parent)

Retorna o alinhamento ao longo do eixo x.

6

float getLayoutAlignmentY(Container parent)

Retorna o alinhamento ao longo do eixo y.

7

int getVgap()

Obtém a lacuna vertical entre os componentes.

8

void invalidateLayout(Container target)

Invalida o layout, indicando que se o gerenciador de layout tiver informações armazenadas em cache, elas devem ser descartadas.

9

void last(Container parent)

Vira para a última carta do contêiner.

10

void layoutContainer(Container parent)

Estabelece o contêiner especificado usando este layout de cartão.

11

Dimension maximumLayoutSize(Container target)

Retorna as dimensões máximas para este layout, dados os componentes no contêiner de destino especificado.

12

Dimension minimumLayoutSize(Container parent)

Calcula o tamanho mínimo do painel especificado.

13

void next(Container parent)

Vira para a próxima carta do contêiner especificado.

14

Dimension preferredLayoutSize(Container parent)

Determina o tamanho preferido do argumento do contêiner usando o layout deste cartão.

15

void previous(Container parent)

Vira para o cartão anterior do contêiner especificado.

16

void removeLayoutComponent(Component comp)

Remove o componente especificado do layout.

17

void setHgap(int hgap)

Define a lacuna horizontal entre os componentes.

18

void setVgap(int vgap)

Define a lacuna vertical entre os componentes.

19

void show(Container parent, String name)

Vira para o componente que foi adicionado a este layout com o nome especificado, usando addLayoutComponent.

20

String toString()

Retorna uma representação de string do estado do layout deste cartão.

Métodos herdados

Esta classe herda métodos das seguintes classes:

  • java.lang.Object

Exemplo CardLayout

Crie o seguinte programa java usando qualquer editor de sua escolha em dizer D:/ > AWT > com > tutorialspoint > gui >

AwtLayoutDemo.java
package com.tutorialspoint.gui;

import java.awt.*;
import java.awt.event.*;

public class AwtLayoutDemo {
   private Frame mainFrame;
   private Label headerLabel;
   private Label statusLabel;
   private Panel controlPanel;
   private Label msglabel;

   public AwtLayoutDemo(){
      prepareGUI();
   }

   public static void main(String[] args){
      AwtLayoutDemo  awtLayoutDemo = new AwtLayoutDemo();  
      awtLayoutDemo.showCardLayoutDemo();       
   }
      
   private void prepareGUI(){
      mainFrame = new Frame("Java AWT Examples");
      mainFrame.setSize(400,400);
      mainFrame.setLayout(new GridLayout(3, 1));
      mainFrame.addWindowListener(new WindowAdapter() {
         public void windowClosing(WindowEvent windowEvent){
            System.exit(0);
         }        
      });    
      headerLabel = new Label();
      headerLabel.setAlignment(Label.CENTER);
      statusLabel = new Label();        
      statusLabel.setAlignment(Label.CENTER);
      statusLabel.setSize(350,100);

      msglabel = new Label();
      msglabel.setAlignment(Label.CENTER);
      msglabel.setText("Welcome to TutorialsPoint AWT Tutorial.");

      controlPanel = new Panel();
      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 Panel panel = new Panel();
      panel.setBackground(Color.CYAN);
      panel.setSize(300,300);

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

      Panel buttonPanel = new Panel(new FlowLayout());

      buttonPanel.add(new Button("OK"));
      buttonPanel.add(new Button("Cancel"));    

      Panel textBoxPanel = new Panel(new FlowLayout());

      textBoxPanel.add(new Label("Name:"));
      textBoxPanel.add(new TextField(20));

      panel.add("Button", buttonPanel);
      panel.add("Text", textBoxPanel);

      Choice choice = new Choice();
      choice.add("Button");
      choice.add("Text");

      choice.addItemListener(new ItemListener() {
         public void itemStateChanged(ItemEvent e) {
            CardLayout cardLayout = (CardLayout)(panel.getLayout());
            cardLayout.show(panel, (String)e.getItem());
         }
      });
      controlPanel.add(choice);
      controlPanel.add(panel);

      mainFrame.setVisible(true);  
   }
}

Compile o programa usando o prompt de comando. Vamos paraD:/ > AWT e digite o seguinte comando.

D:\AWT>javac com\tutorialspoint\gui\AwtlayoutDemo.java

Se nenhum erro ocorrer, significa que a compilação foi bem-sucedida. Execute o programa usando o seguinte comando.

D:\AWT>java com.tutorialspoint.gui.AwtlayoutDemo

Verifique a seguinte saída