java中CardLayout的使用方法

 
import javax.swing.*;import java.awt.*;
import java.awt.event.*;public class Card extends JFrame{/** JFrame的布局管理器是BorderLayout*/JPanel p;//位于中心区域的面板JButton b1,b2,b3,b4;//位于南部区域的四个按钮
    JLabel l1,l2,l3,l4;CardLayout c;//设置面板p的布局
    Card(String name){super(name);this.setVisible(true);this.setBounds(400,300,400,400);p = new JPanel();//实例化pc = new CardLayout();//实例化cp.setLayout(c);//设置面板p的布局为c,等价于p = new JPanel(c);//实例化4个按钮和标签b1 = new JButton("previous");b2 = new JButton("two");b3 = new JButton("three");b4 = new JButton("next");l1 = new JLabel("first card");l2 = new JLabel("second card");l3 = new JLabel("thirth card");l4 = new JLabel("fourth card");//实例化4个子面板并设定相应背景颜色JPanel p1 = new JPanel();JPanel p2 = new JPanel();JPanel p3 = new JPanel();JPanel p4 = new JPanel();        p1.setBackground(Color.green);p2.setBackground(Color.pink);p3.setBackground(Color.orange);p4.setBackground(Color.lightGray);//把上面4个面板添加到中心面板p中,并把4个面板分别用编号为1,2,3,4代替p.add(p1,"1");p.add(p2,"2");p.add(p3,"3");p.add(p4,"4");//把4个标签分别添加到4个子面板中
        p1.add(l1);p2.add(l2);p3.add(l3);p4.add(l4);//实例化位于南部区域的面板,并添加4个按钮JPanel psourth = new JPanel();psourth.add(b1);psourth.add(b2);psourth.add(b3);psourth.add(b4);//把p,psourth分别添加到本JFrame的中心区域和南部区域this.add(p);//等价于this.add(p,BorderLayout.CENTER); 因为默认是把组件添加到中部    this.add(psourth,BorderLayout.SOUTH);//为按钮b1添加监听器,当被按下时显示面板p中的前一个子面板b1.addActionListener(new ActionListener(){@Overridepublic void actionPerformed(ActionEvent e) {// TODO Auto-generated method stubc.previous(p);//显示p中的上一个面板
            }            });//为按钮b2添加监听器,当被按下时显示面板p中的第2个子面板b2.addActionListener(new ActionListener(){@Overridepublic void actionPerformed(ActionEvent e) {// TODO Auto-generated method stubc.show(p, "2");//显示p中代号为2的面板
            }            });//以下类推b3.addActionListener(new ActionListener(){@Overridepublic void actionPerformed(ActionEvent e) {// TODO Auto-generated method stubc.show(p, "3");}            });b4.addActionListener(new ActionListener(){@Overridepublic void actionPerformed(ActionEvent e) {// TODO Auto-generated method stub
                c.next(p);}            });//使用匿名内部类为本Frame添加监听器,当点击关闭按钮时结束程序this.addWindowListener(new WindowAdapter(){public void windowClosing(WindowEvent e){System.exit(0);}});}public static void main(String[] args) {// TODO Auto-generated method stubnew Card("My Card");}}
 

 

 

 

运行结果:

 

 

转载于:https://www.cnblogs.com/UUUP/p/3800843.html

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/432493.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

深入浅出UE4网络

UE4中的官方文档结构比较混乱,且有部分错误,不方便学习。笔者试图通过本文,整理出一篇关于UE4网络的文章,方便朋友们对UE4中的网络同步部分的认识,并有进一步理解。如有讲得不清楚明白的地方,还望批评指正。…

java载屁股针_以前常打的“屁股针”,为何现在很少见了?医生告诉你真实原因...

打屁股针应该是每个人的童年噩梦,还记得小时候到医院打针,医生的手还没碰到裤子,就感觉屁股发麻,忍不住拔腿就跑,最终还是被家长逮住,夹在大腿间固定住,防止逃跑,于是在哭喊声中迎来…

Windows中查找文件被何进程使用

这篇文章记录在对文件/文件夹删除、更改,移动时,Windows弹窗提示正在被某程序使用,但又不给出进程名的问题。 方法一、 在任务管理器中,切换到性能项,有一个资源管理器,如下: 进入资源管理器&am…

UE4 多人联机显示每个人的playid

目的:在多人联机模式下,在每个pawn的上方显示textrender,并且在textrender里显示每个pawn的playerid 下面以一个listen server和两个client的方式测试。 1. 创建一个带有textrender的actor,并且勾选其replicated开关 2. 在Chara…

TSubclassOf

在蓝图或C层面调用SpawnActor创建一个actor对象,或者调用SpawnActorDeferred 延迟创建一个actor对象时,都需要一个class类型的参数。 如果在C层面,对象类型是我们自己在蓝图里做的蓝图类,那么C层面需要得到蓝图类型。做法如下&am…

蓝图中实现人物移动1

从Character继承一个蓝图类并编写下面代码1.得到前后移动的方向向量2.得到左右移动的方向向量3. 实现前后移动事件4. 实现左右移动事件5. 实现鼠标左键改变视角和移动方向

Java写一个快速排序_java实现快速排序

以上为思路。总的来说,快速排序也是利用了分治法的思想。基本步骤:1.先选择好合适的主元pivot,2.然后再把比主元小的元素放到主元的左边(右边),把较大的元素放到主元的右边(左边),3.接着再以主元为分界点,把…

解密ControlRotation与ActorRotation

在实现角色移动时,我们是通过获取当前角色向前或者向后移动的向量来计算具体的移动步长,进而增量设置角色位置以达到使角色移动的目的。但是获取向前或者向后的向量得先知道当前角色在世界坐标系中旋转的角度,于是我们就在ControlRotation和A…

系统会自带java吗_使用eclipse自带制作帮助系统

①help的api的生成1:项目中的生成javadoc或右击项目的导出,成javadoc格式。2:找打jdk中的Javadoc位置。如果忘记可以同cmd窗口通过指令寻找jdk位置,还可以直接再我的电脑中搜索javadoc。查找Javadoc.exe路径位置,填入j…

UE4 左右立体参数

在编辑器的editor preferences里设置下面参数

java work set没有显示出来_eclipse里新建work set,将项目分组放在不同文件夹

想必大家的Eclipse里也会有这么多得工程......每次工作使用到的项目肯定不会太多......每次从这么大数量的工程当中找到自己要使用的,必须大规模的滚动滚动条......有点不和谐了.无意当中看到了working set自己创建了一个 workingset 并将相应的 projects 添加到 working set 当…

指针的一些问题

1、c/c语言中不少地方,数组和指针可以相互替换使用,容易让人产生一种错觉,指针和数组是等价的。 数组要么在静态存储区域创建,如全局数组;要么在栈上创建如函数内的数组。数组的名称对应着(而不是指向&…

tankwar的java坦克子弹撞墙_tankwar

tankwar 是使用java开发的一个单机版的小游戏 (未使用任何游戏引擎).和90经典版的坦克大战有些不同, 这里是纯坦克之间的战争, 英雄坦克并不用保护它的家.特色:1. 游戏共设6个关卡. (支持无限关卡)关卡设置中包括敌人坦克数量, 移动速度, 子弹速度, 以及子弹的杀伤力, 炸弹数量…

【翻译】使用Ext JS设计响应式应用程序

原文:Designing Responsive Applications with Ext JS在当今这个时代,用户都希望Web应用程序无论在形状还是大小上,既能在桌面电脑,也能在移动设备上使用。使应用程序能适应不同的需求渐成趋势。幸运的是,Ext JS 5提供…

java各种的不好_译文《最常见的10种Java异常问题》

封面:洛小汐译者:潘潘知彼知己,方能百战不殆。前言本文总结了有关Java异常的十大常见问题。目录检查型异常(checked) vs. 非检查型异常(Unchecked)异常管理的最佳实践箴言为什么在try代码块中声明的变量不能在catch或者finally中被引用&#…

Hadoop 开源调度系统zeus(二)

紧跟之前Hadoop 开源调度系统zeus(一) 本节主要介绍一下zeus的架构: 先给一个zeus的架构图 无论Master还是Worker都有一套WEB UI,无论从哪个上面去看,看到的结果都是一样的,实际上一般仅仅看主 Master:调度内核&#x…

python十条建议_十条建议帮你提高Python编程效率

程序员的时间很宝贵,Python这门语言虽然足够简单、优雅,但并不是说你使用Python编程,效率就一定会高。要想节省时间、提高效率,还是需要注意很多地方的。今天就与大家分享资深Python程序员总结的10点建议,帮助大家大幅…

Django:快速搭建简单的Blog

一,创建项目 1, 为blog创建名为mysite的工程项目: django-admin.py startproject mysite2, 项目结构如下: mysite├── manage.py└── mysite├── __init__.py├── settings.py├── urls.py└── wsgi.pymanage.py ----- Django项目…

java se好用吗_利用 Java SE 7 更好地管理资源

2011 年 5 月发布作者:Julien Ponge本文介绍 Java 7 针对自动资源管理问题给出的解决办法,即 Coin 项目中提出的新语言结构 try-with-resources 语句。:示例源文件 (zip) 简介典型的 Java 应用程序可以处理多种类型的资源,如文件、…