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 }

CardLayout布局练习(小的图片浏览器),布布扣,bubuko.com

时间: 2024-08-25 10:09:15

CardLayout布局练习(小的图片浏览器)的相关文章

小蔡图片浏览器

小蔡图片浏览器,这是基于Android4.4开发的一款浏览手机里的图片的浏览器.简单美观实用.欢迎下载. 下载地址:http://download.csdn.net/detail/jczmdeveloper/7329593 应用效果图: 小蔡图片浏览器

UI基础-图片浏览器-改进1

上篇文章实现了一个使用UIImageView\UILabel\UIButton实现一个综合的小的图片浏览器,虽然能实现功能,但是代码有很大的问题,这里进行第一次改进:将代码中重复性的代码进行封装,封装成一个方法,用用户点击按钮时,调用点击按钮的响应方法,这个方法中直接调用封装的这个方法. 下面直接上代码,storyboard拖线跟上篇一样,这里不再重复 ViewController.m 1 // 2 // ViewController.m 3 // 01-图片浏览器1 4 // 5 // Cre

自定义Gallery控件实现简单3D图片浏览器

本篇文章主要介绍如何使用自定义的Gallery控件,实现3D效果的图片浏览器的效果. 话不多说,先看效果. 上面是一个自定义的Gallery控件,实现倒影和仿3D的效果,下面是一个图片查看器,点击上面的小图片,可以在下面查看大图片. 下面重点说一下,实现图片查看器的思路. 1.手机中图片路径的获取 首先,先不管图片如何展示,如果我们想实现图片查看器的功能,我们首先需要做的是获取到所有的图片的路径信息,只有这样,我们才能实现对图片的查看. 我们可以使用下面的代码实现 private List<St

swift项目初体验--教你打造一款个性化图片浏览器(篇幅过大,慎入)

项目需求:做一个图片浏览器,点击图片查看大图,大图模式下,左右滚动能查看不同的图片. 项目的主要核心技术:图片的弹出和消失动画 一.对代码进行重构 1.对代码进行抽取划分 1.1 为什么要对代码进行抽取? swift中,代码全部写在一起,阅读性极差 2.如何对代码进行抽取? 2.1在oc中,可以把功能模块抽取一个个方法 2.2swift中,专门提供 extension ,可以对原有的类进行扩展 3.怎么使用extension 抽取代码? 3.1 把一些方法写在extension(扩展)里面,这样

Android中轴旋转特效实现,制作别样的图片浏览器

转载请注明出处:http://blog.csdn.net/guolin_blog/article/details/10766017 Android API Demos中有很多非常Nice的例子,这些例子的代码都写的很出色,如果大家把API Demos中的每个例子研究透了,那么恭喜你已经成为一个真正的Android高手了.这也算是给一些比较迷茫的Android开发者一个指出了一个提升自我能力的方向吧.API Demos中的例子众多,今天我们就来模仿其中一个3D变换的特效,来实现一种别样的图片浏览器

简单图片浏览器

在设置开关灯的时候出了一点小问题,默认UISwitch为on当用if(sender.on)做判断时,第一次点击无效.后来调试默认为on,当改变状态时sender.on返回的是0,再次点击返回的是1.判断一个UISwitch为off可以用!sender.on 用到加载本地目录下的文件 //获取所有描述(通过解析plist文件来创建数组对象,比如传入文件的全路径) NSBundle *bundle = [NSBundle mainBundle]; //获取文件的全路径 NSString *path

Java FlowLayout、BorderLayout、GridLayout、GridBagLayout、CardLayout布局管理器

作者:卿笃军 原文地址:http://blog.csdn.net/qingdujun/article/details/40985027 一.FlowLayout布局管理器 FlowLayout() 构造一个新的 FlowLayout,它是居中对齐的,默认的水平和垂直间隙是 5 个单位. FlowLayout(int align) 构造一个新的 FlowLayout,它具有指定的对齐方式,默认的水平和垂直间隙是 5 个单位. FlowLayout(int align, int hgap, int

事件监听---图片浏览器

事件监听---图片浏览器 code: 1.布局 1 <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" 2 xmlns:tools="http://schemas.android.com/tools" 3 android:layout_width="match_parent" 4 android:layout_height="matc

制作简单的图片浏览器

(1)加载图片和浏览图片的布局文件 图片预先放置在这里. 主要的布局文件 <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:tools="http://schemas.android.com/tools" android:layout_width="fill_parent" android:layout_height="fi