Java课程设计的图片浏览器的

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

.课程设计的任务及要求

二.需求分析

图形化界面(GUI)编程,编写一个图片浏览器程序可以支持“ “.GIF”,“.JPEG',“.jpeg ”,“.TGA',“.JPG”,“.jpg ” 等格式,单打开图片,可以将同一目录下的图片按缩略图打开按“上一”“下一”按钮可以显示相应图片。运行Applet时,图像不是一气呵成的,因为方法不是吧图像完整的装入存再显示的。于此相反,方法创建一个线程,该线程与Applet的原有线程并发执行,

一边装入一边显示,从而产生上了不联需显示的现象。为了提高图像才显示效果, 可以采用双缓冲技术:首先把图像装入存,然后再显示在屏幕上。

三.设计思路

3.1界面设计

选择图片按钮:主要用dir函数实现图片的遍历。

上一,下一:通过做标轴回调函数实现。

由于本软件为单机软件,不需要大量的数据读写和数据交换,实现上、下功能要求只能读取PictureBox控件当前加载的目录,读取当前路径,创建一维数组。

frame = n ewFrame( "Pictureviewer");

Panel pb = n ewPa nel();

Button select = newButton("选择图片");

previous = newButton("上——");

next = newButton( ”下一"); select.addActionListener( this );

previous .addActionListener( this );

3.2. 图像加载:

Applet常用来显示储存在文件中的图像,多数Applet使用的是GIF或JPEG 格式的图像文件。需Applet加载图像只需首先定义Image对象,然后使用getlmage()方法把图像和文件结合起来即可。

image_width = bi.getWidth(this);

image_height = bi.getHeight(this);

double image_proporti on = 1.0 * image_height / image_width;

System.out.pri ntl n("image: w "+image_width+" ,h "+image_height+" ,p1 "+image_proportion);

if(image_proporti on > scree n_ proportio n){ image_height = scree n_height;

image_width = (i nt)(image_height / image_proportio n); System.out.pri ntl n(”

p1>p0 w= "+image_width); }else{

image_width = scree n_width; image_height = (in t)(image_width *

image_proporti on); System.out.pri ntln (” p0>p1 h= "+image_height); }

四.详细设计

4.1.程序设计流程图

4.2. 源程序代码

package C;

import java.io.File;

import java.io.File nameFilter;

public class MyFilter impleme nts File nameFilter{ private Strin g[] exte nsion; public MyFilter(){

extension = newString[]{".jpg", ".JPG", ".gif", ".GIF", ".png", ".PNG", ".jpeg", ".JPEG"};

}

public MyFilter(Stri ng[] exte nsio n){

this.exte nsion = exte nsion;

}

public boolea n accept(File dir,Stri ng n ame){

for(Stri ng s : exte nsion){

if(n ame.e ndsWith(s)){

return true;

}

}

return false;

}

}

package C;

import java.awt.*;

import java.awt.eve nt.*;

import java.awt.image.*;

public class MyCa nvas exte nds Can vas impleme nts Comp onen tListe ner{ /**

*

*/

private static fin al l ong serialVersi on UID = 1L;

private Bufferedlmage bi;

private Image im;

private int image_width;

private int image_height;

public void setImage(BufferedImage bi){

this.bi = bi;

this.zoom();

}

public void pain t(Graphics g){

g.drawlmage(im,(this.getWidth()-image_width)/2,(this.getHeight()-imag

e_height)/2,this);

}

public void comp onen tResized(Comp onen tEve nt e){

if(bi != null){

System.out.pri ntln ("resize!!");

this.zoom();

this.repai nt();

}

}

相关文档
最新文档