AWT de Java | Clase CardLayout

La clase CardLayout administra los componentes de tal manera que solo un componente es visible a la vez. Trata cada componente como una tarjeta en el contenedor. Solo se ve una carta a la vez y el contenedor actúa como una pila de cartas. El primer componente agregado a un objeto CardLayout es el componente visible cuando el contenedor se muestra por primera vez.

Constructores: 

  1. CardLayout(): se utiliza para crear un nuevo diseño de tarjeta con espacios de tamaño cero.
  2. CardLayout(int horizontalgap, int verticalgap): Se utiliza para crear una nueva clase CardLayout con los espacios horizontales y verticales especificados.

Métodos comúnmente utilizados:  

  • getLayoutAlignmentX(Container parent): Devuelve la alineación a lo largo del eje x.
  • getLayoutAlignmentY(Container parent): Devuelve la alineación a lo largo del eje y.
  • getVgap(): Se utiliza para obtener el espacio vertical entre los componentes.
  • addLayoutComponent(Componente cm, Objeto cn): se utiliza para agregar el componente especificado a la tabla interna de nombres de este diseño de tarjeta.
  • getHgap(): Se utiliza para obtener el espacio horizontal entre los componentes.
  • toString(): Devuelve una representación de string del estado de este diseño de tarjeta.
  • removeLayoutComponent(Componente cm): Se utiliza para eliminar el componente especificado del diseño.

Los siguientes programas ilustran la clase CardLayout:  

  • Programa 1: En el siguiente programa, estamos organizando varios componentes JLabel en un JFrame , cuya clase de instancia es » Cardlayout «. Creamos 3 componentes JButton llamados » bt1 « , » bt2 «, » bt3 » y luego los agregamos al JFrame usando el método add() . Establecemos el tamaño y la visibilidad del marco mediante el método setSize() y setVisible() . El diseño se establece mediante el método setLayout() .

Java

// Java program to illustrate the CardLayout Class
import java.awt.*;
import java.awt.event.*;
import javax.swing.JFrame;
import javax.swing.*;
 
// class extends JFrame and implements actionlistener
public class Cardlayout extends JFrame implements ActionListener {
 
    // Declaration of objects of CardLayout class.
    CardLayout card;
 
    // Declaration of objects of JButton class.
    JButton b1, b2, b3;
 
    // Declaration of objects
    // of Container class.
    Container c;
 
    Cardlayout()
    {
 
        // to get the content
        c = getContentPane();
 
        // Initialization of object "card"
        // of CardLayout class with 40
        // horizontal space and 30 vertical space .
        card = new CardLayout(40, 30);
 
        // set the layout
        c.setLayout(card);
 
        // Initialization of object "b1" of JButton class.
        b1 = new JButton("GEEKS");
 
        // Initialization of object "b2" of JButton class.
        b2 = new JButton("FOR");
 
        // Initialization of object "b3" of JButton class.
        b3 = new JButton("GEEKS");
 
        // this Keyword refers to current object.
        // Adding Jbutton "b1" on JFrame using ActionListener.
        b1.addActionListener(this);
 
        // Adding Jbutton "b2" on JFrame using ActionListener.
        b2.addActionListener(this);
 
        // Adding Jbutton "b3" on JFrame using ActionListener.
        b3.addActionListener(this);
 
        // Adding the JButton "b1"
        c.add("a", b1);
 
        // Adding the JButton "b2"
        c.add("b", b2);
 
        // Adding the JButton "b1"
        c.add("c", b3);
    }
     
    public void actionPerformed(ActionEvent e)
    {
         
        // call the next card
        card.next(c);
    }
 
    // Main Method
    public static void main(String[] args)
    {
         
        // Creating Object of CardLayout class.
        Cardlayout cl = new Cardlayout();
 
        // Function to set size of JFrame.
        cl.setSize(400, 400);
 
        // Function to set visibility of JFrame.
        cl.setVisible(true);
 
        // Function to set default operation of JFrame.
        cl.setDefaultCloseOperation(EXIT_ON_CLOSE);
    }
}

Producción: 

  • Programa 2: En el siguiente programa, estamos organizando 4 componentes JLabel en un JFrame , cuya clase es » CardlayoutDemo «. Creamos 4 componentes JButton llamados » firstbtn « , » nextbtn «, » anteriorbtn «, » lastbtn » y 4 componentes JLabel llamados » jl1 «, » jl2 «, » jl3 » » jl4 «. Aquí también estamos creando 4 componentes JPanel llamados » jp1 «, » jp2 «, » jp3 «, » jp4 » y luego los agregamos alJFrame usando el método add() . Estableceremos el tamaño, la visibilidad y el título del marco utilizando los métodos setSize() , setVisible() y setTitle() respectivamente. El diseño se establece mediante el método setLayout()

Java

// Java program to show Example of CardLayout.
// in java. Importing different Package.
import java.awt.*;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import javax.swing.*;
 
// class extends JFrame
public class CardLayoutDemo extends JFrame {
 
    // Initialization the value of
    // current card is 1 .
    private int currentCard = 1;
 
    // Declaration of objects
    // of CardLayout class.
    private CardLayout cl;
 
    public CardLayoutDemo()
    {
 
        // Function to set visibility of JFrame
        setTitle("Card Layout Example");
 
        // Function to set visibility of JFrame
        setSize(300, 150);
 
        // Creating Object of "Jpanel" class
        JPanel cardPanel = new JPanel();
 
        // Initialization of object "c1"
        // of CardLayout class.
        cl = new CardLayout();
 
        // set the layout
        cardPanel.setLayout(cl);
 
        // Initialization of object
        // "jp1" of JPanel class.
        JPanel jp1 = new JPanel();
 
        // Initialization of object
        // "jp2" of CardLayout class.
        JPanel jp2 = new JPanel();
 
        // Initialization of object
        // "jp3" of CardLayout class.
        JPanel jp3 = new JPanel();
 
        // Initialization of object
        // "jp4" of CardLayout class.
        JPanel jp4 = new JPanel();
 
        // Initialization of object
        // "jl1" of JLabel class.
        JLabel jl1 = new JLabel("Card1");
 
        // Initialization of object
        // "jl2" of JLabel class.
        JLabel jl2 = new JLabel("Card2");
 
        // Initialization of object
        // "jl3" of JLabel class.
        JLabel jl3 = new JLabel("Card3");
 
        // Initialization of object
        // "jl4" of JLabel class.
        JLabel jl4 = new JLabel("Card4");
 
        // Adding JPanel "jp1" on JFrame.
        jp1.add(jl1);
 
        // Adding JPanel "jp2" on JFrame.
        jp2.add(jl2);
 
        // Adding JPanel "jp3" on JFrame.
        jp3.add(jl3);
 
        // Adding JPanel "jp4" on JFrame.
        jp4.add(jl4);
 
        // Adding the cardPanel on "jp1"
        cardPanel.add(jp1, "1");
 
        // Adding the cardPanel on "jp2"
        cardPanel.add(jp2, "2");
 
        // Adding the cardPanel on "jp3"
        cardPanel.add(jp3, "3");
 
        // Adding the cardPanel on "jp4"
        cardPanel.add(jp4, "4");
 
        // Creating Object of "JPanel" class
        JPanel buttonPanel = new JPanel();
 
        // Initialization of object
        // "firstbtn" of JButton class.
        JButton firstBtn = new JButton("First");
 
        // Initialization of object
        // "nextbtn" of JButton class.
        JButton nextBtn = new JButton("Next");
 
        // Initialization of object
        // "previousbtn" of JButton class.
        JButton previousBtn = new JButton("Previous");
 
        // Initialization of object
        // "lastbtn" of JButton class.
        JButton lastBtn = new JButton("Last");
 
        // Adding JButton "firstbtn" on JFrame.
        buttonPanel.add(firstBtn);
 
        // Adding JButton "nextbtn" on JFrame.
        buttonPanel.add(nextBtn);
 
        // Adding JButton "previousbtn" on JFrame.
        buttonPanel.add(previousBtn);
 
        // Adding JButton "lastbtn" on JFrame.
        buttonPanel.add(lastBtn);
 
        // add firstbtn in ActionListener
        firstBtn.addActionListener(new ActionListener()
        {
            public void actionPerformed(ActionEvent arg0)
            {
                 
                // used first c1 CardLayout
                cl.first(cardPanel);
 
                // value of currentcard is 1
                currentCard = 1;
            }
        });
 
        // add lastbtn in ActionListener
        lastBtn.addActionListener(new ActionListener()
        {
            public void actionPerformed(ActionEvent arg0)
            {
 
                // used last c1 CardLayout
                cl.last(cardPanel);
 
                // value of currentcard is 4
                currentCard = 4;
            }
        });
 
        // add nextbtn in ActionListener
        nextBtn.addActionListener(new ActionListener()
        {
            public void actionPerformed(ActionEvent arg0)
            {
 
                // if condition apply
                if (currentCard < 4)
                {
                     
                    // increment the value of currentcard by 1
                    currentCard += 1;
 
                    // show the value of currentcard
                    cl.show(cardPanel, "" + (currentCard));
                }
            }
        });
 
        // add previousbtn in ActionListener
        previousBtn.addActionListener(new ActionListener()
        {
            public void actionPerformed(ActionEvent arg0)
            {
                // if condition apply
                if (currentCard > 1) {
 
                    // decrement the value
                    // of currentcard by 1
                    currentCard -= 1;
 
                    // show the value of currentcard
                    cl.show(cardPanel, "" + (currentCard));
                }
            }
        });
 
        // used to get content pane
        getContentPane().add(cardPanel, BorderLayout.NORTH);
 
        // used to get content pane
        getContentPane().add(buttonPanel, BorderLayout.SOUTH);
    }
 
    // Main Method
    public static void main(String[] args)
    {
 
        // Creating Object of CardLayoutDemo class.
        CardLayoutDemo cl = new CardLayoutDemo();
 
        // Function to set default operation of JFrame.
        cl.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
 
        // Function to set visibility of JFrame.
        cl.setVisible(true);
    }
}

Producción: 

Nota: Es posible que los programas anteriores no se ejecuten en un IDE en línea. Utilice un compilador fuera de línea.

Referencia: https://docs.oracle.com/javase/7/docs/api/java/awt/CardLayout.html 
 

Publicación traducida automáticamente

Artículo escrito por Shivi_Aggarwal y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *