⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 cardlayoutdemo.java

📁 ACCP 软件工程java 教程学生用书
💻 JAVA
字号:
package carddemo;

import java.awt.BorderLayout;
import java.awt.CardLayout;
import java.awt.Color;
import java.awt.Container;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import javax.swing.BorderFactory;
import javax.swing.BoxLayout;
import javax.swing.ButtonGroup;
import javax.swing.JComponent;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JPanel;
import javax.swing.JRadioButton;

public class CardLayoutDemo implements ActionListener {
    public CardLayoutDemo() {
        try {
            jbInit();
        } catch (Exception ex) {
            ex.printStackTrace();
        }
    }
    JPanel cards; //使用 CardLayout 的面板
    final static String[] strings = {"组件 1", "组件 2 太长从而使容器变宽", "组件 3"};


    private static JComponent createComponent(String s) {
        JLabel lblComponent = new JLabel(s);
        lblComponent.setBorder(BorderFactory.createMatteBorder(5,5,5,5,
                                                    Color.DARK_GRAY));
        lblComponent.setHorizontalAlignment(JLabel.CENTER);
        return lblComponent;
    }

    public void addCardsToPane(Container pane) {
    JRadioButton[] radComponent = new JRadioButton[strings.length];
    ButtonGroup group = new ButtonGroup();
    JPanel pnlButtons = new JPanel();
    pnlButtons.setLayout(new BoxLayout(pnlButtons, BoxLayout.PAGE_AXIS));
    for (int i= 0; i < strings.length; i++) {
    radComponent[i] = new JRadioButton("显示组件 #" + (i+1));
    radComponent[i].setActionCommand(String.valueOf(i));
    radComponent[i].addActionListener(this);
    group.add(radComponent[i]);
    pnlButtons.add(radComponent[i]);

    }

    radComponent[0].setSelected(true);
//创建含有“卡片”的面板
    cards = new JPanel(new CardLayout());
    for (int i = 0; i < strings.length; i++) {
    cards.add(createComponent(strings[i]), String.valueOf(i));

    }

    pane.add(pnlButtons, BorderLayout.NORTH);
    pane.add(cards, BorderLayout.CENTER);
    }

    //编写以下代码,单击单选按钮时可显示适当的卡片:

    public void actionPerformed(ActionEvent evt) {
    CardLayout cardObj = (CardLayout)(cards.getLayout());
    cardObj.show(cards, (String)evt.getActionCommand());
    }

    public static void main(String[] args) {
    JFrame.setDefaultLookAndFeelDecorated(true);
    JFrame frmCard = new JFrame();
    frmCard.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);

    CardLayoutDemo demo = new CardLayoutDemo();
    demo.addCardsToPane(frmCard.getContentPane());


    frmCard.pack();
    frmCard.setVisible(true);
    }


    private void jbInit() throws Exception {
    }
}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -