CardLayout布局练习(小的图片浏览器)
1 /* 2 涉及Panel中的图片的加载,还有Frame的关闭的方法, CardLayout(int hgap, int vgap)就会决定卡片面板的大小 3 匿名类的使用。。。 4 */ 5 import java.awt.*; 6 import java.awt.event.*; 7 import javax.swing.*; 8 public class CardLayoutDemo extends Frame{ 9 Panel pCards=new Panel();//卡片面板 10 CardLayout Clayout=new CardLayout(120, 50);//设置卡片和面板边界的垂直和水平距离 11 public CardLayoutDemo(){ 12 setLayout(new BorderLayout(100, 20)); 13 Panel pBtn = new Panel();//按钮面板 14 15 pCards.setLayout(Clayout); 16 //pCards.setPreferredSize(new Dimension(30,40));//这句不再起作用了:因为其父类CardLayoutDemo使用的是BorderLayout布局方式,会自动填充 17 pCards.setBackground(Color.red); 18 pBtn.setBackground(Color.yellow); 19 pBtn.setLayout(new FlowLayout(FlowLayout.CENTER, 10, 10)); 20 pBtn.setPreferredSize(new Dimension(200, 50)); 21 22 Button tmpB; 23 pBtn.add(tmpB = new Button("第一张")); 24 tmpB.addActionListener(new myActionListener()); 25 tmpB.setActionCommand("first"); 26 pBtn.add(tmpB = new Button("下一张")); 27 tmpB.addActionListener(new myActionListener()); 28 tmpB.setActionCommand("next"); 29 30 pBtn.add(tmpB = new Button("前一张")); 31 tmpB.addActionListener(new myActionListener()); 32 tmpB.setActionCommand("previous"); 33 34 pBtn.add(tmpB = new Button("最后一张")); 35 tmpB.addActionListener(new myActionListener()); 36 tmpB.setActionCommand("last"); 37 38 39 for(int i=1; i<=4; ++i){ 40 myPanel tmpP; 41 pCards.add(""+i, tmpP=new myPanel(i){ 42 public void paint(Graphics g){ 43 g.drawImage(new ImageIcon("zjy"+i+".jpg").getImage(), 20, 0, 300, 400, this); 44 } 45 }); 46 tmpP.setBackground(Color.blue); 47 //tmpP.setSize(new Dimension(300, 400));//tmpP接受了匿名类对象,可以通过这种方法更改匿名类的属性 48 //这里不设置的原因是它的大小由CardLayout(int hgap, int vgap)决定了 49 } 50 add(pBtn, "North"); 51 add(pCards, "Center"); 52 } 53 class myActionListener implements ActionListener{ 54 public void actionPerformed(ActionEvent e){ 55 String str=e.getActionCommand(); 56 if(str.equals("first")) 57 Clayout.first(pCards); 58 else if(str.equals("next")) 59 Clayout.next(pCards); 60 else if(str.equals("previous")) 61 Clayout.previous(pCards); 62 else if(str.equals("last")) 63 Clayout.last(pCards); 64 } 65 } 66 67 public static void main(String args[]){ 68 CardLayoutDemo myWindow = new CardLayoutDemo(); 69 myWindow.setSize(new Dimension(600, 600)); 70 myWindow.setResizable(false); 71 myWindow.addWindowListener(new myClosingListener()); 72 myWindow.setVisible(true); 73 } 74 } 75 76 77 class myClosingListener extends WindowAdapter{ 78 public void windowClosing(WindowEvent e){ 79 System.exit(0); 80 } 81 } 82 83 class myPanel extends Panel{ 84 int i; 85 public myPanel(int i){ 86 this.i=i; 87 } 88 }
转载于:https://www.cnblogs.com/hujunzheng/p/3811123.html
CardLayout布局练习(小的图片浏览器)相关推荐
- Android小程序(3)--简单图片浏览器
简单图片浏览器 此使用的知识点是XML布局文件与Java代码的混合来控制UI界面. 首先在布局文件中定义简单的线性布局容器: <?xml version="1.0" enco ...
- ImageView组件的应用:图片浏览器
随时随地技术实战干货,获取项目源码.学习资料,请关注源代码社区公众号(ydmsq666) 本实例用来练习ImageView组件的使用,实现一个图片浏览器,该图片浏览器可以改变所查看的图片的透明度,切换 ...
- 微信小程序图片裁剪功能的实现
文章目录 图片上传与处理 图片尺寸适配 图片显示与裁剪框 裁剪框的拖动与缩放 增加canvas并裁剪图片 保存图片到相册 总结 在之前的博文中,已经介绍了如何使用在前端开发中,实现较方便自由的图片裁剪 ...
- Qt实战(四)——图片浏览器
图片浏览器逻辑 实现图片浏览器用到了前面几乎所有的知识,包括窗口部件.布局.事件.对象模型与容器类.图形视图.模型/视图编程以及多线程等.大致流程为:首先定义一个图片类,该类包含图片的路径.文件名 ...
- 利用PyQt打造一款适合自己的图片浏览器
电脑自带的图片浏览器,很好用,但不是万能的.现实中有各种特殊需求,因此有时为了方便,量身打造一款适合自己的图片浏览器可能是有必要的.各种特殊需求总是不一样的,我这儿的特殊需求就是:我有成百上千的图片需 ...
- Android学习之打造美女图片浏览器
本文旨在教你打造一个真实的一个图片浏览器,并非写一堆链接用来测试:也算是用到Android基本的常用的知识,对于初学者来说是一个不错的练手demo:当然本文对于图片加载也有自己的一些见解,希望可以帮助 ...
- 【Android 应用开发】AndroidUI设计 之 图片浏览器
图片浏览器效果图 : 源码下载地址 : -- CSDN : http://download.csdn.net/detail/han1202012/6875083 -- GitHub : https:/ ...
- Android:相对布局综合小演练—智能家居,按键快速美化的小技巧
一.相对布局综合小演练-智能家居 需要用到的图片 新建一个工程 首先,里面的 android:paddingBottom="@dimen/activity_v ...
- 仿快图系统自带图片浏览器应用源码项目
仿快图系统自带图片浏览器应用源码,最近在做一个微博i动态模块,需要查看他人相册照片或者微博内容图片等.看到QQ空间那个效果不错,尝试了不少方法来实现,均不是怎么理想.最初是想通过自定义GroupVie ...
最新文章
- GaitSet:通过交叉视角步态识别
- SPOJ 1811. POJ 2774 . 最大公共子串
- php代码getsubstr,ThinkPHP 模板substr的截取字符串函数实例讲解
- Android 系统(152)---Android多线程:HandlerThread详细使用手册
- python爬取网页文本_手把手教你如何用Python爬取网站文本信息
- python2.7初学(〇)
- 画数轴的步骤_上分助手北师大数学七年级上册第二章有理数第二节数轴详细拆解...
- java基本数据类型存放在哪?
- 宽度学习(BLS)实战——python复刻MNIST数据集的数据预处理及训练过程
- 压垮硬盘的最后一次备份
- Activiti工作流表结构详解
- python画箭头_python画箭头(用内置的函数)怎么画?
- 小学计算机写字板教案,小学第二册信息技术《第9课走进“写字板”》教学参考...
- 计算机网络第三章数据链路层习题答案
- 勃林格殷格翰与Lifebit合作识别全球传染病暴发;百济神州和Shoreline Biosciences达成合作 | 医药健闻...
- FPGA输出五路PWM
- 【转】RMAN-06094: datafile 1 must be restored ID 1339439.1
- 【无标题】Java画板简易实现
- Tensorflow安装方法 (一)【 使用国内镜像下载】
- iconfont字体图标下载
热门文章
- *计算机应用基础* 说课稿,中职计算机应用基础《EXCEL中函数的使用》说课稿.doc...
- flowable 数据库表结构 梳理
- Jenkins_安装基础软件_入门试炼03
- JavaScript 中,break , continue , return 的区别
- python xml etree word_使用python格式化插入的元素xml.etree模块,包括新行
- binlog日志_mysql 重要日志文件总结
- dell服务器怎么看硬件状态,从DELL 2950和DELL R710看服务器硬件
- 变量命名 – 匈利亚命名法则 - C语言零基础入门教程
- Python set list dict tuple 区别和相互转换 - Python零基础入门教程
- mino文件服务器删除文件,Spring-minio