图片浏览器课程设计报告
- 格式:doc
- 大小:54.00 KB
- 文档页数:5
图片浏览器设计报告学院土木工程学院班级土木工程C076 学号074837 姓名郭少华成绩一、设计思路1.要达到的目的①培养学生综合利用VB语言进行程序设计的能力,主要是利用VB的标准控件进行设计。
②能够打开常见类型的图片,自动进行缩放,适应PictureBox的大小。
③在FileListBox中只列出图片文件。
④使用StatusBar 控件状态条显示图片文件相关信息,包括图片尺寸(单位:象素)、文件大小和日期等。
⑤使用HscrollBar控件对图片进行缩放。
⑤可以轮流显示FileListBox中列出图片文件。
⑥当图片放大超过窗口大小后,可以提供鼠标移动图片显示。
2.关键问题的解决①使用Loadpicture方法在图片框里加载符合格式要求的图片。
②使用FileListBox方法来显示图片。
③使用PaintPicture方法和改变滚动条的Value属性,使图片能够缩放。
④使用Timer事件更改FileListBox的ListCount属性,使图片能自动浏览。
⑤使用MouseMove事件,在图片过大时,通过鼠标移动使图片显示。
二、模块之间的调用关系,或程序流程图picture模块hscrollbar模块pictureload三、部分程序关键源代码及注释Private Sub Form_Load()Drive1.Drive = App.PathDir1.Path = App.Path 'App 是当前的应用程序对象File1.Pattern = "*.bmp;*.jpg;*.ico;*.wmf" '在FileListBox中只列出图片文件。
Picture1.AutoSize = TruePicture2.AutoSize = True '设定自动缩放,适应PictureBox的大小。
= 2000= sbrCenter= 1800= sbrCenter= 2400= sbrCenter= 3000= sbrCenter '设定StatusBar的数量和属性End SubPrivate Sub Drive1_Change()On Error Resume NextDir1.RefreshDir1.Path = Drive1.DriveIf Err.Number = 68 ThenErr.ClearMsgBox "先将光盘插入!", , "提示"Exit SubEnd If '设定错误提示End SubPrivate Sub Dir1_Change()File1.Path = Dir1.PathEnd SubPrivate Sub File1_Click()If Right(File1.Path, 1) <> "\" Thentempstring = File1.Path & "\" & File1.FileName '非根目录时,路径中的最后加上一个反斜杠"\"Elsetempstring = File1.Path & "\" & File1.FileNameEnd If '装入选定的文件。
目录1. 概述 (2)1.1 设计目标 (2)1.2 开发工具的选择 (2)2 需求分析 (2)2.1 系统需求 (2)2.2 功能需求 (2)2.3 性能需求 (3)2.3.1 硬件环境 (3)2.3.2软件环境 (3)3 系统设计 (3)3.1 设计思想与处理流程 (3)3.2 系统层次模块图 (3)4数据结构设计 (4)4.1. 数据分析 (4)4.2. 数据库设计 (4)4.2.1. 设计原则 (4)4.2.2. 面向对象数据库设计方法 (4)4.2.3 表信息 (4)5 系统模块实现 (5)5.1登录与注册模块 (5)5.2学生信息添加模块 (5)5.3学生信息浏览模块 (6)5.4学生信息修改模块 (7)6 心得体会 (7)7 参考文献 (8)1. 概述1.1 设计目标为方便用户浏览本地图片资源,设计并开发基于android的图片浏览器。
为了寻求更好的使用体验,使用瀑布流的布局,以及异步加载的方式。
系统目标如下:1.1.1实现自动加载本地SD卡的所有图片,并按照文件夹分类1.1.2界面简洁,操作简单1.1.3使用时不占用系统太大内存1.1.4实现瀑布流的图片布局1.1.5点击一张图片时放大图片1.2 开发工具的选择1.2.1 Eclipse + ADT1.2.2 JDK1.2.3 android SDK2 需求分析2.1 系统需求如今android操作系统的手机人手一台,基于android的多媒体应用快速发展,本项目正式在这样的环境下开发,使用更人性化的瀑布流的布局方式展现图片列表,本项目基于浏览图片为目标,不具备图片编辑美化处理2.2 功能需求根据上述的信息管理系统的业务流程、要求以及所要实现的目标,我们可以拟出以下需求目标:(1)图片按文件夹的分类查看(2)图片的异步加载机制,和动态内存回收机制(3)图片的瀑布流布局,更加优雅的显示图片资源2.3 性能需求系统的运行对于运行环境的要求是;2.3.1 硬件环境目前市面上的android操作系统的手机基本满足要求●内存: 200M或以上●硬盘空间:20M或以上●需要插入SD卡2.3.2软件环境●操作系统:Android 4.2.2●开发软件:Eclipse3 系统设计3.1 设计思想与处理流程本系统采用面向对象方法进行分析和设计,使用纯面向对象的java语言作为开发语言,使用Android作为开发平台,能够很好的实现系统的开发及测试。
VB课程设计报告课程设计题目:图片浏览器目录VB课程设计报告 ...................................................................................................... - 1 -一.内容摘要 ................................................................................................................ - 3 -二.功能描述(含流程图) (3)2.1 流程图: (3)2.2 图片浏览器描述(1)............................................................................... - 4 -2.3 图片浏览器描述(2)............................................................................... - 4 -2.4 图片浏览器描述(3)............................................................................... - 4 -2.5 图片浏览器描述(4) (4)2.6 图片浏览器描述(5) (4)三.概要设计 (4)3.1 电子式图片浏览器 (4)四.详细设计 (5)4.1盘符,文件夹和文件列表的确定 (5)4.2图片显示时,盘符,文件夹和文件列表隐藏 (5)4.3 图片放大的确定 (5)4.4 图片缩小的确定 (5)4.5图片转换到上一张的确定 (6)4.6图片转换到下一张的确定 (6)五.效果及存在问题 (6)5.1程序的效果: (6)5.2显示图片的情况:....................................................................................... - 9 -5.3:图片浏览器扩大的情况:............................................ 错误!未定义书签。
c 图片浏览器课程设计一、课程目标知识目标:1. 学生能理解图片浏览器的功能与作用,掌握其基本操作流程。
2. 学生能了解图片浏览器的界面布局,掌握各功能按钮的作用。
3. 学生能掌握图片的打开、缩放、旋转、保存等基本操作。
技能目标:1. 学生能运用图片浏览器打开不同格式的图片,并进行基本的编辑操作。
2. 学生能运用图片浏览器进行图片的批量处理,提高工作效率。
3. 学生能通过图片浏览器搜索、下载网络图片,丰富自己的图片资源。
情感态度价值观目标:1. 学生培养对计算机软件操作的兴趣,提高信息技术素养。
2. 学生培养良好的网络图片使用习惯,尊重版权,遵循法律法规。
3. 学生通过图片浏览器的使用,学会欣赏美、发现美,提高审美能力。
课程性质:本课程为信息技术课程,注重实践操作,培养学生的动手能力。
学生特点:六年级学生具备一定的计算机操作基础,对新事物充满好奇,喜欢动手操作。
教学要求:结合学生特点,课程设计要注重实践性、趣味性和操作性,使学生在轻松愉快的氛围中掌握图片浏览器的使用技巧。
教学过程中,关注学生个体差异,给予不同层次的学生针对性的指导,确保每个学生都能达到课程目标。
将课程目标分解为具体的学习成果,便于教学设计和评估。
1. 图片浏览器简介:介绍图片浏览器的定义、作用及其在日常生活和学习中的应用场景。
- 教材章节:第一章 计算机软件应用2. 图片浏览器的基本操作:讲解如何打开、关闭、缩放、旋转、保存图片等基本操作。
- 教材章节:第二章 图片浏览器的使用3. 图片浏览器的进阶操作:学习批量处理图片、下载网络图片等高级功能。
- 教材章节:第三章 图片浏览器的进阶技巧4. 图片浏览器实践操作:结合实例,让学生动手操作,巩固所学知识。
- 教材章节:第四章 实践操作5. 图片浏览器的安全与法规:讲解在使用图片浏览器时应遵守的法律法规,提高学生的网络安全意识。
- 教材章节:第五章 网络安全与法规教学安排与进度:第一课时:图片浏览器简介,基本操作(1课时)第二课时:图片浏览器进阶操作,实践操作(2课时)第三课时:图片浏览器安全与法规,总结与拓展(1课时)教学内容注重科学性和系统性,结合教材章节,让学生在掌握图片浏览器基本操作的基础上,进一步提高操作技能,同时培养良好的网络安全意识。
图片浏览器设计报告学院土木工程班级交通运输111 学号111391 姓名刁化尧成绩一、设计思路1.要达到的目的培养学生综合利用VB语言进行程序设计的能力,利用VB的图像控件进行界面设计的能力,用VB的鼠标事件进行控件的拖拽处理以及利用数组进行数据处理的能力。
2.关键问题的解决使用 Loadpicture 方法在图片框里加载符合格式要求的图片。
使用 FileListBox 方法来显示图片。
使用 PaintPicture 方法和改变滚动条的 Value 属性,使图片能够缩放。
使用 Timer 事件更改 FileListBox 的 ListCount 属性,使图片能自动浏览。
使用 MouseMove 事件,在图片过大时,通过鼠标移动使图片显示。
二、模块之间的调用关系,或程序流程图特别注意:根据自己题目的情况修改此图,可以更简单或者更复杂!流程特简单的可以没有这个部分。
三、部分程序关键源代码及注释1、文件夹和文件列表的确定Private Sub Dir1_Click()Form1.Text1.Text = Dir1.PathEnd SubPrivate Sub Drive1_Change()On Error Resume NextDir1.RefreshDir1.Path = Drive1.DriveIf Err.Number = 68 ThenErr.ClearMsgBox "请您先将光盘插入,谢谢。
", , "提示"Exit SubEnd IfForm1.Text1.Text = Drive1.DriveEnd SubPrivate Sub File1_Click()n = File1.Path & "\" & File1.FileName'装入选定的文件。
Picture1.Enabled = TruePicture2.Picture = LoadPicture(n)Picture1.PaintPicture Picture2.Picture _, 0, 0, Picture1.Width, Picture1.Height, _0, 0, Picture2.Width, Picture2.Height'设定图片的初始状态Picture2.Visible = Falsemysize = FileLen(Form2.Dir1.Path & "\" & File1.FileName)Picture2.ScaleMode = 3Text1.Text = File1.Path + "\" + File1'显示图片途径Text2.Text = "共" & File1.ListCount & "张" & "第" & File1.ListIndex + 1 & "张"'显示图片总数和当前图片的序号End Sub2、图片转换到上一张和下一张的确定Private Sub Command3_Click()n = File1.ListIndexn = ((File1.ListCount + (n - 1)) Mod File1.ListCount)File1.ListIndex = nPicture2.Picture = LoadPicture(File1.Path & "\" & File1.List(n))Picture1.Enabled = TruePicture1.PaintPicture Picture2.Picture _, 0, 0, Picture1.Width, Picture1.Height, _0, 0, Picture2.Width, Picture2.Height'设定图片的初始状态Picture2.Visible = Falsemysize = FileLen(Form2.Dir1.Path & "\" & File1.FileName)Picture2.ScaleMode = 3'翻到上一页End SubPrivate Sub Command4_Click()n = File1.ListIndexn = ((File1.ListCount + (n + 1)) Mod File1.ListCount)File1.ListIndex = nPicture2.Picture = LoadPicture(File1.Path & "\" & File1.List(n))Picture1.Enabled = TruePicture2.Picture = LoadPicture(File1.Path & "\" & File1.List(n))Picture1.Enabled = TruePicture1.PaintPicture Picture2.Picture _, 0, 0, Picture1.Width, Picture1.Height, _0, 0, Picture2.Width, Picture2.Height'翻到下一页End Sub3、转换到第一页和最后一页的确定Private Sub Command2_Click()File1.ListIndex = 0Picture2.Picture = LoadPicture(File1.Path & "\" & File1.List(0))Picture1.Enabled = TruePicture1.PaintPicture Picture2.Picture _, 0, 0, Picture1.Width, Picture1.Height, _0, 0, Picture2.Width, Picture2.Height'翻到第一页End SubPrivate Sub Command5_Click()n = File1.ListCountFile1.ListIndex = File1.ListCount - 1Picture2.Picture = LoadPicture(File1.Path & "\" & File1.List(n - 1)) Picture1.Enabled = TruePicture1.PaintPicture Picture2.Picture _, 0, 0, Picture1.Width, Picture1.Height, _0, 0, Picture2.Width, Picture2.Height'翻到最后一页End Sub4、自动浏览的确定Private Sub Command6_Click()If Command6.Caption = "自动浏览" ThenTimer1.Enabled = TrueCommand6.Caption = "停止浏览"ElseTimer1.Enabled = FalseCommand6.Caption = "自动浏览"End If'设定自动浏览End SubPrivate Sub Timer1_Timer()X = File1.ListIndexX = X + 1If X < File1.ListCount ThenFile1.Selected(X) = TrueCall File1_ClickElseFile1.ListIndex = 0End If'设定timer事件来自动浏览图片End Sub5、滚动条的确定Private Sub HScroll1_Change()Picture1.ClsMax = 200Min = 1Value = 200smallchang = 1largechang = 1Picture1.PaintPicture Picture2.Picture, 0, 0, _Picture1.Width * HScroll1.Value / 100, _Picture1.Height * HScroll1.Value / 100, 0, 0, _Picture2.Width, Picture2.Height'使用滚动条缩放图片End Sub6、鼠标拖动图片的确定Private Sub Picture1_MouseDown(Button As Integer, Shift As Integer, X As Single, Y As Single) X1 = XY1 = YEnd SubPrivate Sub Picture1_MouseUp(Button As Integer, Shift As Integer, X As Single, Y As Single)X2 = XY2 = YX3 = X3 + X2 - X1Y3 = Y3 + Y2 - Y1Picture1.ClsIf HScroll1.Value <> 100 Then'使用鼠标移动图片Picture1.PaintPicture Picture2.Picture, X3, Y3, _Picture1.Width * HScroll1.Value / 100, _Picture1.Height * HScroll1.Value / 100'使用PaintPicture方法ElsePicture1.PaintPicture Picture2.Picture, X3, Y3, _Picture1.Width, Picture1.HeightEnd IfPicture2.Visible = FalseEnd Sub四、设计方案的完善及目前存在的问题1.设计方案要完善的地方①没有对错误文件的处理②当图片过大时不能全部显示③界面不够美观2. 目前存在的问题①片信息显示不是很完善②鼠标拖动效果不理想③图片不能铺满图片框五、本次设计的收获及心得体会真正了解了vb的含义和用途。
电子信息工程专业课程设计题单班级 0882053 学生张彬彬课程名称专业课程设计课题图片浏览器的实现设计要求利用visual C#开发工具实现一图片浏览器。
要求完成以下功能:1、打开多张图片,可以控制前后图片的浏览2、可以设置图片的显示方式:全屏或置顶等3、在运行状态中隐藏界面,显示在托盘程序中课题发给日期 2011-6-10 课程设计完成日期 2011-6-21 指导教师方芳等评语:评分:摘要此次课程设计的课题是图片浏览器,通过Visual Studio软件完成。
拿到课题感觉不是很难,只需要用pictureBox1将图片显示出来。
但当开始编程序的时候,就发现了不少问题。
比如说:如何将图片地址全部扫描进来,并存储、什么是在运行状态中隐藏界面,显示在托盘程序中等等都是课本上没有的或者以前没学过的。
于是我们通过图书馆查阅资料,参考程序并在老师的指导下将课题完成了,实现了图片的上一张下一张浏览、放大、缩小、全屏、等要求的功能,并添加了定时器,能实现简单的循环播放功能。
关键字:图片浏览器、全屏、上一张、下一张目录摘要 (2)第一章流程图及功能描述 (3)第二章概要设计及详细设计 (4)第三章调试及结果分析 (8)第四章总结 (13)第五章参考文献 (14)附录程序代码 (15)第一章流程图及功能描述1.1流程图图片浏览器程序流程图1.2功能描述运行程序后如不查找图片所在文件夹,则不能使用。
查找后,将文件夹内JPG、GIF等格式的图片地址扫描存储在listbox内,通过改变其索引实现上下张浏览等功能,扩大缩小等功能则是通过改变pictureBox1的高宽来实现的。
第二章概要设计及详细设计2.1 概要设计利用visual C#设计一个图片浏览器,能完成浏览的基本功能。
2.2 详细设计a:扫描文件夹图片FolderBrowserDialog folder = new FolderBrowserDialog();if (folder.ShowDialog() == DialogResult.OK){listBox1.Items.Clear();PPath = folder.SelectedPath;DirectoryInfo Dinfo = new DirectoryInfo(PPath);FileSystemInfo[] FSinfo = Dinfo.GetFileSystemInfos();for (int i = 0; i < FSinfo.Length; i++){string FileType =FSinfo[i].ToString().Substring(FSinfo[i].ToString().LastIndexOf(".") + 1, (FSinfo[i].ToString().Length -FSinfo[i].ToString().LastIndexOf(".") - 1));FileType = FileType.ToLower();if (FileType == "jpg" || FileType == "png" || FileType == "bmp" ||FileType == "gif" || FileType == "jpeg"){listBox1.Items.Add(FSinfo[i].ToString());}}b:图片的放大if (pictureBox1.Height <= 800 && pictureBox1.Width <= 1000){pictureBox1.Height = pictureBox1.Height * 2;pictureBox1.Width = pictureBox1.Width * 2;}c:图片的缩小if (pictureBox1.Height >= 40 && pictureBox1.Width >= 60){pictureBox1.Height = pictureBox1.Height / 2;pictureBox1.Width = pictureBox1.Width / 2;}d:图片的上下张浏览try{if (listBox1.SelectedIndex != 0){ button4.Enabled = true;listBox1.SetSelected(listBox1.SelectedIndex - 1, true);}else button1.Enabled = false;}catch { }pictureBox1.Image = Image.FromFile(PPath + "\\" +listBox1.SelectedItem);}//当浏览到最后一张时下一张功能失效try{if (listBox1.SelectedIndex < listBox1.Items.Count - 1) {button1.Enabled = true;listBox1.SetSelected(listBox1.SelectedIndex + 1, true);}else button4.Enabled = false;}catch { }pictureBox1.Image = Image.FromFile(PPath + "\\" +listBox1.SelectedItem);}//当浏览到最后一张时下一张功能失效e:全屏及还原(对API不太了解所以直接将实验室电脑屏幕大小赋给picturebox)if (button6.Text == "全屏"){button6.Text = "还原";pictureBox1.Height = 690;pictureBox1.Width = 1280;}else{button6.Text = "全屏";pictureBox1.Height = 440;pictureBox1.Width = 429;}f:显示在托盘中在窗体中放置notifyIcon控件,导入图标。
图片浏览器设计报告一、设计思路1.要达到的目的①培养学生综合利用VB语言进行程序设计的能力,主要是利用VB的标准控件进行设计。
②能够打开常见类型的图片,自动进行缩放,适应PictureBox的大小。
③在FileListBox中只列出图片文件。
④使用StatusBar 控件状态条显示图片文件相关信息,包括图片尺寸(单位:象素)、文件大小和日期等。
⑤使用HscrollBar控件对图片进行缩放。
⑤可以轮流显示FileListBox中列出图片文件。
⑥当图片放大超过窗口大小后,可以提供鼠标移动图片显示。
2.关键问题的解决①使用Loadpicture方法在图片框里加载符合格式要求的图片。
②使用FileListBox方法来显示图片。
③使用PaintPicture方法和改变滚动条的Value属性,使图片能够缩放。
④使用Timer事件更改FileListBox的ListCount属性,使图片能自动浏览。
⑤使用MouseMove事件,在图片过大时,通过鼠标移动使图片显示。
二、模块之间的调用关系,或程序流程图三、部分程序关键源代码及注释Private Sub Form_Load()Drive1.Drive = App.PathDir1.Path = App.Path 'App 是当前的应用程序对象File1.Pattern = "*.bmp;*.jpg;*.ico;*.wmf" '在FileListBox中只列出图片文件。
Picture1.AutoSize = TruePicture2.AutoSize = True '设定自动缩放,适应PictureBox的大小。
StatusBar1.Panels.AddStatusBar1.Panels.AddStatusBar1.Panels.AddStatusBar1.Panels.Item(1).MinWidth = 2000StatusBar1.Panels.Item(1).Alignment = sbrCenterStatusBar1.Panels.Item(2).MinWidth = 1800StatusBar1.Panels.Item(2).Alignment = sbrCenterStatusBar1.Panels.Item(3).MinWidth = 2400StatusBar1.Panels.Item(3).Alignment = sbrCenterStatusBar1.Panels.Item(4).MinWidth = 3000StatusBar1.Panels.Item(4).Alignment = sbrCenter '设定StatusBar的数量和属性End SubPrivate Sub Drive1_Change()On Error Resume NextDir1.RefreshDir1.Path = Drive1.DriveIf Err.Number = 68 ThenErr.ClearMsgBox "请您先将光盘插入,谢谢。
图片浏览器(后面附有完整代码)一、需求分析1、首先。
因为要显示图片所以要先有一个界面;用JFrame;2、因为要能显示选定文件夹内的图片,所以要有一个文件夹选择器;用JTree;3、显示图片的滚动面板;用JScrollPane;4、因为要对图片进行分类,所以要设计分类模块;5、因为要对图片进行备份,所以要设计备份模块;6、因为要对图片进行幻灯播放,所以要设计幻灯播放模块;二、概要设计本次课程设计模块图、系统流程图:三、运行环境、开发语言操作系统:Windows XP 专业版 32位 SP3 ( DirectX 9.0c )开发工具:MyEclipse开发语言:java四、详细设计1 程序清单String pt;鼠标点击的图片的绝对路径File[] files2;面板上正在显示的图片文件JLabel[] imageLabel;图片绑定的JLabel控件组JLabel jlabel,jimageLabel; 图片绑定的JLabel控件JPanel jp1,jp2,jp3;显示不同内容的面板JButton[] jb;按钮数组private JTree tree;文件夹选择树private JScrollPane jsp1,jsp2,jsp3;滚动面板Timer timer;计时器public PictureDir()类的构造函数WindowAction窗体事件TreeSelect文件夹选择树事件FileDidianListener分类为地点事件FileRenwuListener分类为人物事件FileXiangceListener分类为相册事件FileQitaListener分类为其它事件FileZipListener备份事件FileBackListener还原事件MouseAction鼠标点击事件FileStartListener幻灯片播放事件JCAction显示分类图片事件read(String)读文件函数save(String,String)写文件函数unzip(String,String)解压缩函数resizeIcon(ImageIcon,JLabel)控制图片显示大小的函数deleteFile(File)删除文件函数main(String[])主函数2 主要代码整个程序的界面如下图:2.1 选择文件夹功能class TreeSelect implements TreeSelectionListener{public void valueChanged(TreeSelectionEvent e) {TreePath path=e.getPath();DefaultMutableTreeNodenode=(DefaultMutableTreeNode)path.getLastPathComponent();Object userObject=node.getUserObject();if(!(userObject instanceof File)){return;}File folder=(File)userObject;if(!folder.isDirectory())return;File[] files1=initImageSets1(folder);for(File file:files1){node.add(new DefaultMutableTreeNode(file));}files2=initImageSets2(folder);for(int i=0;i<imageLabel.length;i++){imageLabel[i].setIcon(null);imageLabel[i].setBorder(null);}for(int i=0;i<files2.length;i++){imageLabel[i].setIcon(newImageIcon(files2[i].toString()));imageLabel[i].addMouseListener(new MouseAction());imageLabel[i].setName(String.valueOf(i));resizeIcon(newImageIcon(files2[i].toString()),imageLabel[i]);}}private File[] initImageSets1(File pictureDir){return pictureDir.listFiles(new FilenameFilter(){public boolean accept(File dir,String name){if(!new File(dir,name).isFile())return true;elsereturn false;}});}private File[] initImageSets2(File pictureDir){return pictureDir.listFiles(new FilenameFilter(){public boolean accept(File dir,String name){if(!new File(dir,name).isFile())return false;String lowserName=name.toLowerCase();if(lowserName.endsWith("jpg")||lowserName.endsWith("jpeg") ||lowserName.endsWith("gif")||lowserName.endsWith("png")||lowserName.endsWith("GIF")||lowserName.endsWith("TIFF")||lowserName.endsWith("ICO")||lowserName.endsWith("BMP")){return true;}return false;}});}}结果:2.2图片分类功能class FileDidianListener implements ActionListener{public void actionPerformed(ActionEvent e) {try {save(pt,"didian.txt");JOptionPane.showMessageDialog(null,"分类为“地点”完成!");} catch (Exception e1) {e1.printStackTrace();}}}class FileRenwuListener implements ActionListener{public void actionPerformed(ActionEvent e) {try {save(pt,"renwu.txt");JOptionPane.showMessageDialog(null,"分类为“人物”完成!");} catch (Exception e1) {e1.printStackTrace();}}}private DefaultMutableTreeNode rootNode;class FileXiangceListener implements ActionListener{public void actionPerformed(ActionEvent e) {try {save(pt,"xiangce.txt");JOptionPane.showMessageDialog(null,"分类为“相册”完成!");} catch (Exception e1) {e1.printStackTrace();}}}class FileQitaListener implements ActionListener{public void actionPerformed(ActionEvent e) {try {save(pt,"qita.txt");JOptionPane.showMessageDialog(null,"分类为“其它”完成!");} catch (Exception e1) {e1.printStackTrace();}}}结果:2.3图片备份和还原功能class FileZipListener implements ActionListener{public void actionPerformed(ActionEvent e) {try {int a=0;File file1=new File(pt);File file2=new File("imagesdata.zip");File f=new File("D:/1/3/5");f.mkdirs();if(!file2.exists()){file2.createNewFile();a=1;}elseunzip("imagesdata.zip","D:/1/3/5");FileOutputStream fos= new FileOutputStream(file2);ZipOutputStream zos=new ZipOutputStream(fos);byte[] buffer=new byte[1024];if(a==0){File[] files=f.listFiles();File[] filess=new File[files.length+1];for(int i=0;i<files.length;i++){filess[i]=files[i];}filess[filess.length-1]=file1;for (int i = 0; i < filess.length; i++) {String[] st=filess[i].getName().split(".");for(int j=0;j<st.length;j++){JOptionPane.showMessageDialog(null,j+"="+st[j]);}ZipEntry entry=new ZipEntry(newDate().getTime()+filess[i].getName());FileInputStream in = newFileInputStream(filess[i]);zos.putNextEntry(entry);int len;while ( (len = in.read(buffer)) > 0) {zos.write(buffer, 0, len);}zos.closeEntry();in.close();}}if(a==1){ZipEntry entry=new ZipEntry(newDate().getTime()+file1.getName());FileInputStream fis=new FileInputStream(file1);zos.putNextEntry(entry);int read=0;while((read=fis.read(buffer))!=-1){zos.write(buffer,0,read);}zos.closeEntry();fis.close();}zos.close();fos.close();JOptionPane.showMessageDialog(null,"备份完成!");deleteFile(f);} catch (Exception e1) {e1.printStackTrace();JOptionPane.showMessageDialog(null,"备份失败!");File f=new File("D:/1/2/3");deleteFile(f);}}}class FileBackListener implements ActionListener{public void actionPerformed(ActionEvent e) {JFileChooser chooser1;chooser1=new JFileChooser();chooser1.setFileSelectionMode(JFileChooser.DIRECTORIES_ONLY);chooser1.setCurrentDirectory(new File("."));int result=chooser1.showOpenDialog(new JFrame());File file=chooser1.getSelectedFile();if(result==JFileChooser.APPROVE_OPTION);{t ry{unzip("imagesdata.zip" ,file.toString());}catch (IOException e1) {e1.printStackTrace();}}}}结果:2.4 幻灯片播放功能class FileStartListener implements ActionListener{public void actionPerformed(ActionEvent e){JFrame f;JPanel j;JButton startBtn;JButton stopBtn;startBtn=new JButton("继续");startBtn.addActionListener(new ActionListener(){ public void actionPerformed(ActionEvent ee){if(timer!=null)timer.start();}});stopBtn=new JButton("暂停");stopBtn.addActionListener(new ActionListener(){public void actionPerformed(ActionEvent ee){if(timer!=null)timer.stop();}});f=new JFrame();j=new JPanel();f.setSize(800,700);f.setLocation(300,50);f.setVisible(true);Container c=f.getContentPane();c.add(new JScrollPane(jimageLabel));j.add(startBtn);j.add(stopBtn);c.add(j,"South");if(files2.length==0)return;timer=null;timer=new Timer(200,new ActionListener(){int index=0;public void actionPerformed(ActionEvent el){jimageLabel.setIcon(new ImageIcon(newImageIcon(files2[index].toString()).getImage().getScaledInstance(750,600, Image.SCALE_SMOOTH)));index++;index%=files2.length;}});timer.setCoalesce(true);timer.setDelay(3*500);timer.start();}}结果:五、调试与分析1、首先遇到的问题是,如何在同一个面板上显示多张图片?解决办法:将多个用于显示图片的JLabel控件,添加到JScollPanel控件中。
河北工业大学计算机软件技术基础(VB )课 程 设 计 报 告 书学院 土木工程 班级 交通运输051 设计人 吴会博 学号 051318一、 设计题目:图片浏览器程序二、 设计思路:建立两个窗体,在窗体1选择图片,窗体2中显示图片。
在窗体1上建立DirListBox 、 DriveListBox 、 FileListBox 、PictureBox 、commandbutton 等控件。
DriveListBox , DirListBox , FileListBox 用于选择图片。
若选择的路径下有适合的图片格式则在FileListBox 中显示出来。
若不合适则不显示。
Commandbutton 用于关闭浏览器。
控件大小随窗体大小可变化。
PictureBox 建在窗体2中用于显示图片。
窗体大小随图片大小变化而变化。
单击窗体1中的图片由Form2.Picture1.Picture = LoadPicture(Form1.File1.FileName)在PictureBox 中显示出来。
三、 过程调用关系: 四、 程序清单: Form1 (文件选择):Option ExplicitDim w As Single '记录原窗体宽度和高度的变量Dim h As SingleDim ww() As SingleDim hh() As SingleDim mleft() As Single '记录原窗体中个控件的宽度,高度,起始坐标点的数组 Dim mtop() As SinglePrivate Sub Command1_Click()End '结束程序End SubPrivate Sub Dir1_Change()File1.Path = Dir1.Path '取得当前文件夹的文件End SubDirListBox FileListBoxPictureBoxDriveListBoxPrivate Sub Drive1_Change()On Error GoTo eva '错误处理!Dir1.Path = Drive1.Drive '取得当前驱动器下的文件夹Exit Subeva: Drive1.Drive = "C" '错误处理跳转!ResumeEnd SubPrivate Sub File1_Click()ChDrive Drive1.Drive '改变当前用户选择目录为工作目录!ChDir Dir1.PathFile1.Pattern = "*.bmp;*.jpg;*.gif"Form2.Picture1.Picture = LoadPicture(Form1.File1.FileName) '显示图象Form2.Width = Form2.Picture1.WidthForm2.Height = Form2.Picture1.Height '窗体大小随图片大小变化End SubPrivate Sub Form_Load()w = Me.Widthh = Me.HeightReDim ww(0 To Count)ReDim hh(0 To Count) '记录原窗体个控件的宽度,高度,起始坐标点ReDim mleft(0 To Count)ReDim mtop(0 To Count)Dim i As SingleFor i = 0 To Count - 1ww(i) = Me.Controls(i).Widthhh(i) = Me.Controls(i).Heightmleft(i) = Me.Controls(i).Leftmtop(i) = Me.Controls(i).TopNext iFile1.Pattern = "*.bmp;*.jpg;*.gif"Form1.Height = Screen.Height '设置窗体高度App.Title = "" '消除在任务管理器里的应用程序显示Move 0, 0 '设置窗体在屏幕左上角Form2.ShowEnd SubPrivate Sub Form_Resize()Dim j As SingleDim k As SingleDim i As Singlej = Me.Width / wk = Me.Height / h '记录调整比例For i = 0 To Me.Count - 1Command1.Width = ww(i) * jCommand1.Height = hh(i) * k * 2Command1.Left = mleft(i) * j + 300Command1.Top = mtop(i) * k + 6000Dir1.Width = ww(i) * j + 600Dir1.Height = hh(i) * k * 10Dir1.Left = mleft(i) * jDir1.Top = mtop(i) * k + 300File1.Width = ww(i) * jFile1.Height = hh(i) * k * 10File1.Left = mleft(i) * j + 2500File1.Top = mtop(i) * k + 300Drive1.Width = ww(i) * j + 600Drive1.Left = mleft(i) * jDrive1.Top = mtop(i) * kNext iEnd SubForm2 (图象显示):Option ExplicitPrivate Sub Form_Load()With Form2.Width = Screen.Width - Form1.Width.Height = Screen.HeightEnd WithMove Screen.Width - Form2.Width, 0 '设置窗体在右上角Picture1.AutoSize = TrueEnd Sub五、完善方案将图片可以像windows自带的图片浏览器一样可以放大,缩小,水平旋转,垂直旋转等。
图片浏览器设计报告学院土木工程学院班级测绘C111 学号117544 姓名戴健健成绩一、设计思路1.要达到的目的①培养学生综合利用VB语言进行程序设计的能力,主要是利用VB的标准控件进行设计。
②能够打开常见类型的图片,自动进行缩放,适应PictureBox的大小。
③在FileListBox中只列出图片文件。
④使用StatusBar 控件状态条显示图片文件相关信息,包括图片尺寸(单位:象素)、文件大小和日期等。
⑤使用HscrollBar控件对图片进行缩放。
⑤可以轮流显示FileListBox中列出图片文件。
⑥当图片放大超过窗口大小后,可以提供鼠标移动图片显示。
2.关键问题的解决①使用Loadpicture方法在图片框里加载符合格式要求的图片。
②使用FileListBox方法来显示图片。
③使用PaintPicture方法和改变滚动条的Value属性,使图片能够缩放。
④使用Timer事件更改FileListBox的ListCount属性,使图片能自动浏览。
⑤使用MouseMove事件,在图片过大时,通过鼠标移动使图片显示。
二、模块之间的调用关系,或程序流程图三、部分程序关键源代码及注释Private Sub Form_Load()Drive1.Drive = App.PathDir1.Path = App.Path'App 是当前的应用程序对象File1.Pattern = "*.bmp;*.jpg;*.ico;*.wmf"'在FileListBox中只列出图片文件。
Picture1.AutoSize = TruePicture2.AutoSize = True'设定自动缩放,适应PictureBox的大小。
StatusBar1.Panels.AddStatusBar1.Panels.AddStatusBar1.Panels.AddStatusBar1.Panels.Item(1).MinWidth = 2000StatusBar1.Panels.Item(1).Alignment = sbrCenter StatusBar1.Panels.Item(2).MinWidth = 1800StatusBar1.Panels.Item(2).Alignment = sbrCenter StatusBar1.Panels.Item(3).MinWidth = 2400StatusBar1.Panels.Item(3).Alignment = sbrCenter StatusBar1.Panels.Item(4).MinWidth = 3000StatusBar1.Panels.Item(4).Alignment = sbrCenter '设定StatusBar的数量和属性End SubPrivate Sub Dir1_Change()File1.Path = Dir1.PathEnd subPrivate Sub HScroll1_Change()Picture1.ClsMax = 200Min = 1'设定滚动条的最大、最小值。
Value = 200smallchang = 1largechang = 1'设定Value值的改变量。
Picture1.PaintPicture Picture2.Picture, 0, 0, _Picture1.Width * HScroll1.Value / 100, _Picture1.Height * HScroll1.Value / 100, 0, 0, _Picture2.Width, Picture2.Height'使用滚动条缩放图片End SubPrivate Sub Picture1_MouseDown(Button As Integer, _Shift As Integer, X As Single, Y As Single)X1 = XY1 = YEnd SubPrivate Sub Picture1_MouseUp(Button As Integer, Shift As Integer, X As Single, Y As Single) X2 = XY2 = YX3 = X3 + X2 - X1Y3 = Y3 + Y2 - Y1Picture1.Picture = LoadPicture(tempstring)Picture1.ClsIf HScroll1.Value <> 100 Then'使用鼠标移动图片Picture1.PaintPicture Picture2.Picture, X3, Y3, _Picture1.Width * HScroll1.Value / 100, _Picture1.Height * HScroll1.Value / 100'使用PaintPicture方法ElsePicture1.PaintPicture Picture2.Picture, X3, Y3, _Picture1.Width, Picture1.HeightEnd IfEnd SubPrivate Sub munfileopen_Click()'菜单栏"打开"CommonDialog1.ShowOpenPicture2.Picture = LoadPicture(CommonDialog1.FileName)Picture1.ClsPicture1.PaintPicture Picture2.Picture, 0, 0, _Picture1.Width, Picture1.Height, 0, 0, _Picture2.Width, Picture2.HeightPicture2.Visible = FalseCommonDialog1.Filter = "pictures|(*.bmp)|*.bmp|pictures|(*.jpg)|*.jpg|pictures|(*.gif)|*.gif|pictures|(*.ico)|*.ico"'设定载入文件的格式munbigger.Enabled = Truemunsmaller.Enabled = Truemunback.Enabled = Truemysize = FileLen(CommonDialog1.FileName)Picture2.ScaleMode = 3StatusBar1.Panels(1) = "图片尺寸:" & _Picture2.ScaleWidth & "×" & Picture2.ScaleHeightStatusBar1.Panels(2) = "文件大小:" & _Int(mysize / 1024 * 10 + 0.5) / 10 & "KB"StatusBar1.Panels(3) = "修改日期:" & "2012-6-21 " & "14:00"End SubPrivate Sub munfileexit_Click()'菜单栏"关闭"Unload MeEnd SubPrivate Sub munbigger_Click()'菜单栏"放大"Picture1.ClsPicture2.Width = Picture2.Width * 0.8Picture2.Height = Picture2.Height * 0.8Picture1.PaintPicture Picture2.Picture, 0, 0, _Picture1.Width, Picture1.Height, 0, 0, _Picture2.Width, Picture2.HeightEnd SubPrivate Sub munback_Click()'菜单栏"还原"Picture2.Picture = LoadPicture(Dir1.Path & "\" & File1.FileName)Picture1.PaintPicture Picture2.Picture, 0, 0, _Picture1.Width, Picture1.Height, 0, 0, _Picture2.Width, Picture2.HeightPicture2.Visible = FalseEnd Sub四、设计方案的完善及目前存在的问题1.设计方案要完善的地方①增加根据图片的长宽比改变PictrueBox的长宽比。
②增加改变窗口大小,窗口上的图片也要做相应的调整。
③完善菜单栏的“打开”功能和鼠标拖动图片功能。
2. 目前存在的问题①菜单栏的“打开”功能不够完善。
②单击鼠标拖动图片功能不能令人满意。
③文件的信息显示不够全面。
五、本次设计的收获及心得体会①在打好基础的前提下,努力拓宽自己的知识面。
②增加练习的时间,把基础做扎实。
六、对该题目和VB设计的意见和建议1. 对该题目的意见和建议①增加对图片文件的简单的编辑功能。
如缩放、裁减、添加文本框等。
②在浏览功能方面,增加全屏浏览、旋转等功能。
2.对本次设计的意见和建议希望老师的提示能更多一些,多提供一些有用的控件和控件的详细使用方法。