Introduction
The class CardLayout arranges each component in the container as a card. Only one card is visible at a time, and the container acts as a stack of cards.
Class Declaration
Following is the declaration for java.awt.CardLayout class −
public class CardLayout extends Object implements LayoutManager2, Serializable
Class Constructors
Sr.No. | Constructor & Description |
---|---|
1 |
CardLayout()
Creates a new card layout with the gaps of size zero.
|
2 |
CardLayout(int hgap, int vgap)
Creates a new card layout with the specified horizontal and vertical gaps.
|
Class Methods
Sr.No. | Method & Description |
---|---|
1 |
void addLayoutComponent(Component comp, Object constraints)
Adds the specified component to this card layout's internal table of names.
|
2 |
void addLayoutComponent(String name, Component comp)
If the layout manager uses a per-component string, adds the component comp to the layout, associating it with the string specified by name.
|
3 |
void first(Container parent)
Flips to the first card of the container.
|
4 |
int getHgap()
Gets the horizontal gap between the components.
|
5 |
float getLayoutAlignmentX(Container parent)
Returns the alignment along the x axis.
|
6 |
float getLayoutAlignmentY(Container parent)
Returns the alignment along the y axis.
|
7 |
int getVgap()
Gets the vertical gap between the components.
|
8 |
void invalidateLayout(Container target)
Invalidates the layout, indicating that if the layout manager has cached information it should be discarded.
|
9 |
void last(Container parent)
Flips to the last card of the container.
|
10 |
void layoutContainer(Container parent)
Lays out the specified container using this card layout.
|
11 |
Dimension maximumLayoutSize(Container target)
Returns the maximum dimensions for this layout given the components in the specified target container.
|
12 |
Dimension minimumLayoutSize(Container parent)
Calculates the minimum size for the specified panel.
|
13 |
void next(Container parent)
Flips to the next card of the specified container.
|
14 |
Dimension preferredLayoutSize(Container parent)
Determines the preferred size of the container argument using this card layout.
|
15 |
void previous(Container parent)
Flips to the previous card of the specified container.
|
16 |
void removeLayoutComponent(Component comp)
Removes the specified component from the layout.
|
17 |
void setHgap(int hgap)
Sets the horizontal gap between the components.
|
18 |
void setVgap(int vgap)
Sets the vertical gap between the components.
|
19 |
void show(Container parent, String name)
Flips to the component that was added to this layout with the specified name, using addLayoutComponent.
|
20 |
String toString()
Returns a string representation of the state of this card layout.
|
Methods Inherited
This class inherits methods from the following class −
- java.lang.Object
CardLayout Example
Create the following Java program using any editor of your choice in say D:/ > SWING > com > sjavaspot > gui >
SwingLayoutDemo.java
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); } }
THE OUTPUT:
ANOTHER CODE ON CARDLAYOUT
- import java.awt.*;
- import java.awt.event.*;
-
- import javax.swing.*;
-
- public class CardLayoutExample extends JFrame implements ActionListener{
- CardLayout card;
- JButton b1,b2,b3;
- Container c;
- CardLayoutExample(){
-
- c=getContentPane();
- card=new CardLayout(40,30);
- //create CardLayout object with 40 hor space and 30 ver space
- c.setLayout(card);
-
- b1=new JButton("Apple");
- b2=new JButton("Boy");
- b3=new JButton("Cat");
- b1.addActionListener(this);
- b2.addActionListener(this);
- b3.addActionListener(this);
-
- c.add("a",b1);c.add("b",b2);c.add("c",b3);
-
- }
- public void actionPerformed(ActionEvent e) {
- card.next(c);
- }
-
- public static void main(String[] args) {
- CardLayoutExample cl=new CardLayoutExample();
- cl.setSize(400,400);
- cl.setVisible(true);
- cl.setDefaultCloseOperation(EXIT_ON_CLOSE);
- }
- }
THE OUTPUT:
ANOTHER CODE ON CARDLAYOUT
import java.awt.*;
import java.awt.event.*;
class CardLayoutExample extends Frame implements ActionListener
{
CardLayout card = new CardLayout(20,20);
CardLayoutExample()
{
setLayout(card);
Button Btnfirst = new Button("first ");
Button BtnSecond = new Button ("Second");
Button BtnThird = new Button("Third");
add(Btnfirst,"Card1");
add(BtnSecond,"Card2");
add(BtnThird,"Card3");
Btnfirst.addActionListener(this);
BtnSecond.addActionListener (this);
BtnThird.addActionListener(this);
}
public void actionPerformed(ActionEvent e)
{
card.next(this);
}
}
class CardLayoutJavaExample
{
public static void main(String args[])
{
CardLayoutExample frame = new CardLayoutExample();
frame.setTitle("CardLayout in Java Example");
frame.setSize(220,150);
frame.setResizable(false);
frame.setVisible(true);
}
}
THE OUTPUT
No comments:
Post a Comment