import javax.swing.*;
import java.awt.*;
import java.awt.event.*;
public class demo_9
{
    public static void main(String [] args)
    {
        demo_9_1 test=new demo_9_1();
    }
}

class demo_9_1 extends JFrame //implements ActionListener
{
    JPanel cardPanel=new JPanel();//设置card的面板
    JPanel buttonPanel=new JPanel();//设置按钮的放置的面板
    JButton j0,j1,j2,j3;
    CardLayout card =new CardLayout();
    String cardPanelName[]={"0","1","2","3"};
    public demo_9_1()
    {
        /*
        *
        *jframe窗体的布局管理器默认为borederlayout 方法进行布局的
        *所以可以使用aa.add(cardPanel,BorderLayout.CENTER)
        */
        this.setVisible(true);
        this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
        this.setBounds(0,0,400,300);
        cardPanel.setLayout(card);
        Container  aa=this.getContentPane();//返回的是本窗体的容器
        aa.add(cardPanel,BorderLayout.CENTER);//将面板添加到窗体的中心位置
        aa.add(buttonPanel,BorderLayout.SOUTH);//将面板添加到窗体的南部位置
        j0=new JButton("0");
        j1=new JButton("1");
        j2=new JButton("2");
        j3=new  JButton("3");
        buttonPanel.add(j0);
        buttonPanel.add(j1);
        buttonPanel.add(j2);
        buttonPanel.add(j3);
        for(int i=0;i<4;i++)
        {
            cardPanel.add(cardPanelName[i],new JButton("按钮"+i));//循环将按钮加入到设置好了的面板中,//带有字符串的面板将指定组件添加到此容器中
        }
        j0.addActionListener
        (
            new ActionListener()
            {
                public void actionPerformed(ActionEvent e)
                {
                    card.show(cardPanel,cardPanelName[0]);
                }
            }
        );
        j1.addActionListener
        (
            new ActionListener()
            {
                public void actionPerformed(ActionEvent e)
                {
                    card.show(cardPanel,cardPanelName[1]);
                }
            }
        );
        j2.addActionListener
        (
            new ActionListener()
            {
                public void actionPerformed(ActionEvent e)
                {
                    card.show(cardPanel,cardPanelName[2]);
                }
            }
        );
        j3.addActionListener
        (
            new ActionListener()
            {
                public void actionPerformed(ActionEvent e)
                {
                    card.show(cardPanel,cardPanelName[3]);
                }
            }
        );
    }
    // public void actionPerformed(ActionEvent e)
    // {
    //     card.show(cardPanel,cardPanelName[0]);
    // }
}

cardlayout的更多相关文章

  1. CardLayout布局练习(小的图片浏览器)

    /* 涉及Panel中的图片的加载,还有Frame的关闭的方法, CardLayout(int hgap, int vgap)就会决定卡片面板的大小 匿名类的使用... */ import java. ...

  2. JAVA GUI之CardLayout

    package refNet; import java.awt.*; import java.awt.event.*; import javax.swing.*; public class CardL ...

  3. 转:三十二、Java图形化界面设计——布局管理器之CardLayout(卡片布局)

    转:http://blog.csdn.net/liujun13579/article/details/7773945 卡片布局能够让多个组件共享同一个显示空间,共享空间的组件之间的关系就像一叠牌,组件 ...

  4. 三十二、Java图形化界面设计——布局管理器之CardLayout(卡片布局)

    摘自 http://blog.csdn.net/liujun13579/article/details/7773945 三十二.Java图形化界面设计--布局管理器之CardLayout(卡片布局) ...

  5. 5、Java Swing布局管理器(FlowLayout、BorderLayout、CardLayout、BoxLayout、GirdBagLayout 和 GirdLayout)

    5.Java-Swing常用布局管理器       应用布局管理器都属于相对布局,各组件位置可随界面大小而相应改变,不变的只是其相对位置,布局管理器比较难以控制,一般只在界面大小需要改是才用,但即使这 ...

  6. Java中CardLayout布局方式的应用

    import java.awt.CardLayout; import java.awt.Color; import java.awt.Container; import javax.swing.JBu ...

  7. java经典5种 FlowLayout 、BorderLayout、GridLayout、GridBagLayout、CardLayout布局

    Java 程序通过jvm可以很好的移植到其他平台上,但是java 生成的图形界面样式,在不使用布局的情况下,往往需要重新设定大小,才能在新的平台上调整到最佳样式.这是由于组件的最佳大小 往往是与平台相 ...

  8. 布局管理器之CardLayout(卡片布局管理器)

    对于选项卡这个概念大家可能不会陌生,就是在一个窗口中可以切换显示多页不同的内容,但同一时间只能是其中的某一页可见的,这样的一个个的页面就是选项卡. CardLayout就是类似的这样一个布局管理器,它 ...

  9. CardLayout使用

    相对于BoxLayout,GridBugLayut等常用的Swing layout,CardLayout是特殊的,前者是一个容器内布置组件,而后者是在一个容器内放置很多页面(但一个时间只用显示一个). ...

随机推荐

  1. Gradle 打多渠道包

    使用gradle 打多渠道包记录经验如下图可见,每个渠道是包含debug 和realse版本的.通过打印BASE_URL 发现在渠道和版本中都可以修改BuildConfig的常量,这样一次可以打出多个 ...

  2. Springboot项目读取resource下的静态资源方法

    如果按相对路径直接读会定位到target下,因为springboot打包后读到这里 如果做单元测试的话是找不到文件的 File jsonFile = ResourceUtils.getFile(&qu ...

  3. log4net的简单使用记录一下,防止下次忘记

    1.在程序的assembly.cs下添加: [assembly: log4net.Config.XmlConfigurator(Watch = true)]  (忘记这一步,弄了半天,上次好像也是这样 ...

  4. Appium基础知识与环境搭建

    基础知识:  环境搭建: 1.安装jdk,配置java环境变量 (1)新建变量"JAVA_HOME",变量值"D:\Frameworks\Java\jdk1.8.0_18 ...

  5. MySQL Windows环境变量设置

    问题:MySQL无法全局使用 1.查找MySQL路径 2.添加环境变量 3.验证功能

  6. Traceback (most recent call last): File "c:\program files (x86)\microsoft visual studio\2019\community\common7\ide\extensions\microsoft\python\core\Packages\ptvsd\_vendored\pydevd\_pydevd_bundle\pyd

    某次编码,debug的时候突然突然突然给我报这个错: Traceback (most recent call last):   File "c:\program files (x86)\mi ...

  7. 如何解决 快速点击多次触发的bug 期望快速点击只一次生效

    var lastClick; lockClick(){ var nowClick = new Date(); if (lastClick === undefined) { lastClick = no ...

  8. 【原创】控制perl和python脚本执行过程中脚本文件是否关闭的方法

    引子 跟踪perl和python脚本对文件的访问,实际过程中,perl和python解析器在解析完脚本后,直接关闭了 脚本文件,在进程中查询不到是访问文件的脚本文件名称. shell.perl和pyt ...

  9. pytest学习--快速入门

    一.pytest简介 Pytest是python的一种单元测试框架. pytest的特点: 入门简单,文档丰富 支持单元测试,功能测试 支持参数化,重复执行,部分执行,测试跳过 兼容其他测试框架(no ...

  10. 【笔记】Python基础六:模块module介绍及常用模块

    一,module模块和包的介绍 1,在Python中,一个.py文件就称之为一个模块(Module). 2,使用模块的好处? 最大的好处是大大提高了代码的可维护性 其次,编写代码不必从零开始,我们编写 ...