CardLayout
CardLayout
is a special layout manager for creating the effect of a stack of
cards. Instead of arranging all of the container’s components,
it displays only one at a time. You might use this kind of layout to
implement a hypercard stack or a Windows-style set of configuration
screens. If CardLayout sounds interesting, you
might also want to investigate the JTabbedPane
component, described in Chapter 14.
To add a component to a
CardLayout, use a two-argument version of the
container’s add( ) method; the extra
argument is an arbitrary string that serves as the card’s name:
add("netconfigscreen", myComponent);To bring a particular card to the top of the stack, call the
CardLayout’s show( )
method
with two arguments: the parent Container and the
name of the card you want to show. There are also methods like
first( )
, last( ), next( ), and previous( ) for working with the stack of cards. These are all
CardLayout instance methods. To invoke them, you
need a reference to the CardLayout object itself,
not to the container it manages. Each method takes a single argument:
the parent Container. Here’s a simple
example:
//file: Card.java import java.awt.*; import java.awt.event.*; import javax.swing.*; public class Card extends JPanel { CardLayout cards = new CardLayout( ); public Card( ) { setLayout(cards); ActionListener listener = new ActionListener( ) { public void actionPerformed(ActionEvent e) { cards.next(Card.this); } }; JButton button; button = new JButton("one"); button.addActionListener(listener); ...Become an O’Reilly member and get unlimited access to this title plus top books and audiobooks from O’Reilly and nearly 200 top publishers, thousands of courses curated by job role, 150+ live events each month,
and much more.
Read now
Unlock full access