CardLayoutカードレイアウト(Firsh、Next、Previous、Last機能デモ)


import javax.swing.*;
import java.awt.*;
import java.awt.event.*;

public class CardDeck extends JFrame implements ActionListener {
	private static final long serialVersionUID = -2827714684185695534L;
	private CardLayout cardManager;
	private JPanel deck;
	private JButton controls[];
	private String names[] = { "First  card", "Next  card", "Previous  card",
			"Last  card" };

	public CardDeck() {
		super("CardLayout  ");

		Container c = getContentPane();

		// create the JPanel with CardLayout
		deck = new JPanel();
		cardManager = new CardLayout();
		deck.setLayout(cardManager);

		// set up card1 and add it to JPanel deck
		JLabel label1 = new JLabel("card  one", SwingConstants.CENTER);
		JPanel card1 = new JPanel();
		card1.add(label1);
		deck.add(card1, label1.getText()); // add card to deck

		// set up card2 and add it to JPanel deck
		JLabel label2 = new JLabel("card  two", SwingConstants.CENTER);
		JPanel card2 = new JPanel();
		card2.setBackground(Color.yellow);
		card2.add(label2);
		deck.add(card2, label2.getText()); // add card to deck

		// set up card3 and add it to JPanel deck
		JLabel label3 = new JLabel("card  three");
		JPanel card3 = new JPanel();
		card3.setLayout(new BorderLayout());
		card3.add(new JButton("North"), BorderLayout.NORTH);
		card3.add(new JButton("West"), BorderLayout.WEST);
		card3.add(new JButton("East"), BorderLayout.EAST);
		card3.add(new JButton("South"), BorderLayout.SOUTH);
		card3.add(label3, BorderLayout.CENTER);
		deck.add(card3, label3.getText()); // add card to deck

		// create and layout buttons that will control deck
		JPanel buttons = new JPanel();
		buttons.setLayout(new GridLayout(2, 2));
		controls = new JButton[names.length];

		for (int i = 0; i < controls.length; i++) {
			controls[i] = new JButton(names[i]);
			controls[i].addActionListener(this);
			buttons.add(controls[i]);
		}

		// add JPanel deck and JPanel buttons to the applet
		c.add(buttons, BorderLayout.WEST);
		c.add(deck, BorderLayout.EAST);

		setSize(450, 200);
		setVisible(true);
	}

	public void actionPerformed(ActionEvent e) {
		if (e.getSource() == controls[0])
			cardManager.first(deck); // show first card
		else if (e.getSource() == controls[1])
			cardManager.next(deck); // show next card
		else if (e.getSource() == controls[2])
			cardManager.previous(deck); // show previous card
		else if (e.getSource() == controls[3])
			cardManager.last(deck); // show last card
	}

	public static void main(String args[]) {
		CardDeck cardDeckDemo = new CardDeck();

		cardDeckDemo.addWindowListener(new WindowAdapter() {
			public void windowClosing(WindowEvent e) {
				System.exit(0);
			}
		});
	}
}