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

/*
涉及Panel中的图片的加载,还有Frame的关闭的方法, CardLayout(int hgap, int vgap)就会决定卡片面板的大小
匿名类的使用。。。
*/
import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
public class CardLayoutDemo extends Frame{
   Panel pCards=new Panel();//卡片面板
   CardLayout Clayout=new CardLayout(120, 50);//设置卡片和面板边界的垂直和水平距离
   public CardLayoutDemo(){
         setLayout(new BorderLayout(100, 20));
         Panel pBtn = new Panel();//按钮面板

           pCards.setLayout(Clayout);
           //pCards.setPreferredSize(new Dimension(30,40));//这句不再起作用了:因为其父类CardLayoutDemo使用的是BorderLayout布局方式,会自动填充
           pCards.setBackground(Color.red);
           pBtn.setBackground(Color.yellow);
       pBtn.setLayout(new FlowLayout(FlowLayout.CENTER, 10, 10));
           pBtn.setPreferredSize(new Dimension(200, 50));

          Button tmpB;
       pBtn.add(tmpB = new Button("第一张"));
             tmpB.addActionListener(new myActionListener());
               tmpB.setActionCommand("first");
       pBtn.add(tmpB = new Button("下一张"));
             tmpB.addActionListener(new myActionListener());
               tmpB.setActionCommand("next");

       pBtn.add(tmpB = new Button("前一张"));
             tmpB.addActionListener(new myActionListener());
               tmpB.setActionCommand("previous");

       pBtn.add(tmpB = new Button("最后一张"));
             tmpB.addActionListener(new myActionListener());
               tmpB.setActionCommand("last");

       for(int i=1; i<=4; ++i){
              myPanel tmpP;
            pCards.add(""+i, tmpP=new myPanel(i){
                  public void paint(Graphics g){
              g.drawImage(new ImageIcon("zjy"+i+".jpg").getImage(), 20, 0, 300, 400, this);
             }
            });
              tmpP.setBackground(Color.blue);
              //tmpP.setSize(new Dimension(300, 400));//tmpP接受了匿名类对象,可以通过这种方法更改匿名类的属性
              //这里不设置的原因是它的大小由CardLayout(int hgap, int vgap)决定了
         }
           add(pBtn, "North");
           add(pCards, "Center");
   }
   class myActionListener implements ActionListener{
    public void actionPerformed(ActionEvent e){
       String str=e.getActionCommand();
       if(str.equals("first"))
           Clayout.first(pCards);
        else if(str.equals("next"))
           Clayout.next(pCards);
        else if(str.equals("previous"))
           Clayout.previous(pCards);
        else if(str.equals("last"))
           Clayout.last(pCards);
       }
    } 

    public static void main(String args[]){
       CardLayoutDemo myWindow = new CardLayoutDemo();
       myWindow.setSize(new Dimension(600, 600));
       myWindow.setResizable(false);
       myWindow.addWindowListener(new myClosingListener());
       myWindow.setVisible(true);
    }
}

class myClosingListener extends WindowAdapter{
   public void windowClosing(WindowEvent e){
      System.exit(0);
   }
}

class myPanel extends Panel{
   int i;
   public myPanel(int i){
      this.i=i;
   }
}
时间: 2024-12-22 16:05:12

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

html-CSS关于div布局的小问题,请教了,谢谢

问题描述 CSS关于div布局的小问题,请教了,谢谢 <head> <style> .ABC{width:100px; height:100px; background:red; margin:auto; margin-left:20px;} </style> </head> <body> <div class="ABC"></div> </body> </html> 为什么居中

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

Android API Demos中有很多非常Nice的例子,这些例子的代码都写的很出色,如果大家把API Demos中的 每个例子研究透了,那么恭喜你已经成为一个真正的Android高手了.这也算是给一些比较迷茫的Android开 发者一个指出了一个提升自我能力的方向吧.API Demos中的例子众多,今天我们就来模仿其中一个3D变换的 特效,来实现一种别样的图片浏览器. 既然是做中轴旋转的特效,那么肯定就要用到3D变换的功能. 在Android中如果想要实现3D效果一般有两种选择,一是使用O

电脑图片浏览器哪个好?

  图片浏览器简介:一款好的图片浏览器,能够支持多种图片格式,并且能够对图片进行批量的整理.那么大家知道有那些图片浏览器吗?为了让大家不用到处寻找,第九软件网的小编已经在下面向大家推荐了几款好用图片浏览器了. 1.我爱图片浏览器 2.图片浏览器(bkviewer) 3.谷歌图片浏览器 更有软件合集:

div布局-设置有背景图片的&amp;amp;lt;div&amp;amp;gt;块中怎么开发出一个白色的块?

问题描述 设置有背景图片的<div>块中怎么开发出一个白色的块? 我用一个图片添加为一个 的背景,然后想在这个块中再添加一个白的的块,但是这个快没法变为白色. 谢谢回答. 解决方案 贴代码,或者贴效果图. 解决方案二: 不知道你想要什么样的效果,在上面再加一个div就好了啊 解决方案三: 代码贴一下,这样不知道你要干什么 解决方案四: 浮上去一个白色的块就可以了啊 解决方案五: 我也是初学者 看看吧 不一定对 <!doctype html> <div style='backg

【Android开发】范例2-实现幻灯片式图片浏览器

我们来实现一个幻灯片式图片浏览器: 最下面一个画廊视图,选中画廊中的图片,会在上面的ImageSwitcher控件中显示大图. 效果图如图 实现方法: 在布局文件中添加图片切换控件ImageSwitcher和画廊视图控件Gallery res/layout/main.xml: <?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android="http://schemas

我的Android进阶之旅------&amp;gt;Android之Gallery和GridView两种方式与ImageSwitcher实现带预览的和幻灯片方式的两种图片浏览器

一.简介 a.GridView(网络视图)的功能和用法 b.ImageSwitcher(图形切换器)的功能和用法 c.Gallery(画廊视图)的功能和用法 二.通过一个实例来学习Gallery.GridView和ImageSwitcher step1:新建一个项目MyGridViewAndGallery                                            三:我们先写用GridView和ImageSwitcher实现 step1:设计所需的UI界面 a.  

iOS开发中使用UIScrollView实现无限循环的图片浏览器_IOS

一.概述 UIKit框架中有大量的控件供开发者使用,在iOS开发中不仅可以直接使用这些控件还可以在这些控件的基础上进行扩展打造自己的控件.在这个系列中如果每个控件都介绍一遍确实没有必要,所谓授人以鱼不如授人以渔,这里会尽可能让大家明白其中的原理,找一些典型的控件进行说明,这样一来大家就可以触类旁通.今天我们主要来看一下UIScrollView的内容: UIView UIScrollView 实战--图片浏览器 二.UIView 在熟悉UIScrollView之前很有必要说一下UIView的内容.

使用wxpython实现的一个简单图片浏览器实例_python

上次我爬了n多图片,但是浏览的时候有一个问题. 图片浏览器的浏览一般都是按名称排的,而我对图片的命名是按照数字递增的.比如3总是会排在10后面,也就无法快速地浏览图片了. 所以,出于方便自己查阅图片,也出于学习,决定做一个自己的图片浏览器. 目标:浏览目录,通过滚轮不断显示同一个文件夹下的图片,并自定义排序. 步骤0:要实现图形界面,我使用wxPython. 至于如何安装和简单地使用wxpython,可以到网上检索,一大堆资料. 以下步骤默认你已经知道如何生成一个自己的frame. 步骤1:浏览

Android实现图片浏览器示例_Android

本文所述为一个基础的Android图片浏览器代码,是仿写Google原版实现的,代码中实现了主要的实现过程和方法,具体的完善还需要自己添加,代码中有很多注释,可帮助新手们快速理解代码,使用了部分图像资源. 主要功能代码如下: package com.android.coding; import android.app.Activity; import android.content.Context; import android.os.Bundle; import android.view.Vi