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

合集下载

课程设计报告javaweb

课程设计报告javaweb

课程设计报告javaweb一、教学目标本课程旨在通过JavaWeb的学习,让学生掌握JavaWeb的基本概念、技术和应用,培养学生具备JavaWeb程序设计的能力。

具体的教学目标如下:1.理解JavaWeb的基本概念和架构。

2.掌握JavaWeb的核心技术,如HTML、CSS、JavaScript、Servlet、JSP等。

3.了解JavaWeb的应用领域和前景。

4.能够使用HTML、CSS、JavaScript编写网页。

5.能够使用Servlet、JSP技术进行Web应用程序的开发。

6.能够运用JavaWeb技术解决实际问题。

情感态度价值观目标:1.培养学生对JavaWeb技术的兴趣和热情,提高学生的学习积极性。

2.培养学生具备良好的团队合作意识和能力,提高学生的沟通协作能力。

3.培养学生具备创新精神和责任感,提高学生对社会、环境的责任意识。

二、教学内容根据课程目标,本课程的教学内容主要包括以下几个部分:1.JavaWeb基本概念:介绍JavaWeb的定义、发展历程、应用领域和基本架构。

2.HTML、CSS、JavaScript技术:讲解HTML标签、CSS样式、JavaScript脚本的使用方法和应用实例。

3.Servlet技术:讲解Servlet的概念、生命周期、运行原理以及如何编写和部署Servlet。

4.JSP技术:讲解JSP的概念、原理、基本语法以及如何使用JSP实现动态网页。

5.JavaWeb应用实例:分析并实现一些典型的JavaWeb应用案例,如在线、博客系统等。

三、教学方法为了提高教学效果,本课程将采用多种教学方法相结合的方式进行教学:1.讲授法:通过讲解JavaWeb的基本概念、技术和应用,使学生掌握相关知识。

2.案例分析法:分析并实现一些典型的JavaWeb应用案例,让学生学会将理论知识应用于实际问题。

3.实验法:安排实验室实践环节,让学生动手编写代码,培养学生的实际操作能力。

数据结构(JAVA)课程设计

数据结构(JAVA)课程设计

数据结构(JAVA)课程设计数据结构(JAVA)课程设计一、项目背景和目的1.1 项目背景这个课程设计是为了让学生在学习数据结构的过程中,能够运用所学的知识,实际完成一个具体的项目。

通过设计和实现一个基于JAVA的数据结构,帮助学生加深对数据结构的理解。

1.2 项目目的通过完成这个项目,学生将能够:- 熟悉和理解数据结构的基本概念和原则- 掌握JAVA编程语言的基本语法和使用方法- 设计和实现一个完整的数据结构,包括各种基本操作和功能- 加深学生对数据结构的应用和解决问题的能力二、项目需求和功能2.1 项目需求本项目需要实现一个基于JAVA的数据结构,可以包括但不限于以下需求:- 实现各种基本数据结构,如栈、队列、链表、树等- 提供基本的操作和功能,如插入、删除、查找、排序等- 可以处理各种不同类型的数据,如整数、字符、字符串等- 可以实现数据结构的可视化和交互功能- 提供良好的使用界面和用户体验2.2 功能划分根据项目需求,可以将功能分为以下几个部分:- 基本数据结构的实现:栈、队列、链表、树等- 数据结构的基本操作和功能:插入、删除、查找、排序等- 数据类型的处理:整数、字符、字符串等- 可视化和交互功能的实现- 用户界面和用户体验的设计三、项目实现和设计3.1 数据结构的实现在这一部分,需要具体实现各种基本的数据结构,包括但不限于栈、队列、链表、树等。

可以根据不同的数据结构,选择合适的实现方式和算法。

3.2 基本操作和功能的实现在这一部分,需要实现数据结构的基本操作和功能,如插入、删除、查找、排序等。

可以根据具体的需求,选择合适的算法和方法。

3.3 数据类型的处理在这一部分,需要实现对不同类型数据的处理功能,如整数、字符、字符串等。

可以考虑使用面向对象的思想,设计合适的类和方法。

3.4 可视化和交互功能的实现在这一部分,需要实现数据结构的可视化和交互功能,可以考虑使用图形界面或者命令行界面,提供友好的用户界面和用户体验。

Java浏览器

Java浏览器

JAVA语言课程设计设计题目:HTML浏览器目录JAVA语言课程设计 (1)目录 (2)1 前言 (1)2 程序整体设计说明 (2)2.1程序中所使用的类 (2)2.1.1 用户自定义类 (2)2.1.2 成员变量 (2)2.1.3 主要成员方法 (2)2.1.4 内部类 (2)2.2实现的接口方法 (2)2.3异常处理说明 (2)2.3.1获得URL地址异常 (2)2.4程序运行的效果 (3)2.4.1 主界面 (3)2.4.2 打开URL所知网页 (3)2.4.3 打开URL所知网页(出现错误) (3)2.5程序上存在的问题 (4)2.6程序源代码及注释 (4)2.7论文感想 (6)参考文献 (9)致谢 (10)1 前言随着网络的发展,网络安全成为网民上网的一大障碍,为了加强网络安全,软件公司制造出各种各样的网络软件,防火墙、杀马软件、网络防护伞等,最终造成客户端日益庞大,而今天的浏览器就是这样,为了增强安全,浏览器添加各种必要组件,慢慢的越来越庞大,安全性能提上了,但启动速度逐渐在下降,为了弥补这一缺点HTML浏览器面世,它是为快速浏览网页而编写的,有效的降低了用户的等待时间。

HTML浏览器仅在浏览速度上可以代替常规浏览器,但它并不能完全代替常用浏览器,比如安全,功能设置等。

2 程序整体设计说明2.1 程序中所使用的类2.1.1 用户自定义类类名:HTTPBrowserDemo作用:主类继承的父类:JFrame类名:ShowHTMLListener作用:动作监听继承的父类:ActionListener2.1.2 成员变量JTextField jtfAddress; //输入html文件地址或网址JButton jbGo; //转到文件按钮JTextPane jtpShow; //显示文件JLabel jlInfo; //提示信息2.1.3 主要成员方法public HTTPBrowserDemo() //初始化各部件菜单及事件监听public static void main(String[] args)//主方法、驱动2.1.4 内部类内部类:class ShowHTMLListener作用:显示页面内容事件处理继承的父类:ActionListener主要成员变量:URL address成员变量作用:得到HTML页面的URL地址成员方法:public void actionPerformed(ActionEvent event)成员方法作用:页面内容事件的监听2.2 实现的接口方法本程序实现的接口:ActionListener接口中的方法:public void actionPerformed(ActionEvent evt)接口种方法的功能://对URL窗口的网址进行处理。

Android图片浏览器

Android图片浏览器

长沙学院课程设计说明书题目Android图片浏览器系(部) 计算机科学与技术专业(班级) 软件工程(10软件6班) 姓名彭成辉学号2010022504指导教师杨凤年起止日期2013.05.27~2013.06.21课程设计任务书课程名称:综合实训Ⅱ题目:Android图片浏览器已知技术参数和设计要求:设计基于Android平台的图片浏览器程序,具体要求如下:1.图片文件的管理功能。

在配置文件中配置访问SD卡文件的权限,使用File类访问SD卡上的图片文件。

2.用户浏览图片的功能。

用户通过触摸屏操作选择图片进行浏览,使用事件响应函数响应用户的操作,可以使用ImageView在屏幕中显示图片。

3.用户编辑图片的功能。

用户可以放大、缩小、旋转和裁剪图片。

4.设置壁纸功能。

将选择的图片设置为壁纸,可以使用WallPaper类来完成该功能。

5.图片文件的排序功能和查找功能。

根据文件的名称、日期或者其他属性进行排序,根据文件的名称、日期或者其他属性进行查找。

6.使用多种视图展示图片的功能。

可以使用ListView、GridView或者Gallery类来展示图片。

各阶段具体要求:(1)开发前的准备:Android开发环境的搭建。

(2)系统分析与设计:包括程序需求分析、UI设计、业务逻辑设计等。

(3)系统编码实现:根据以上六点要求,对Android图片浏览器进行编码实现。

(4)测试:编写测试用例对程序进行测试。

设计工作量:(1)软件设计:完成问题陈述中所提到的软件以及工作量要求。

(2)论文:要求撰写不少于3000个文字的文档,详细说明各阶段具体要求。

工作计划:安排4周时间进行综合实训。

第一周----Android开发环境的搭建,软件需求分析。

第二周----UI设计、业务逻辑设计。

第三、四周----Android图片浏览器的代码实现与软件测试。

注意事项⏹提交文档长沙学院课程设计任务书(每学生1份)长沙学院课程设计论文(每学生1份)长沙学院课程设计鉴定表(每学生1份)指导教师签名:日期:2013-5-26教研室主任签名:日期:系主任签名:日期:长沙学院课程设计鉴定表摘要本文档描述了基于Android平台如何开发图片浏览器应用软件,并附带介绍了Android开发环境的搭建方法。

《Java》课程设计》记事本

《Java》课程设计》记事本

《Java课程设计》记事本课程设计报告书目录一、设计课题二、设计目的三、操作环境四、设计场所(机房号、机器号或自己机器)五、设计过程(设计内容及主要程序模块)六、本次设计中用到的课程知识点(列出主要知识点)七、设计过程中遇到的问题及解决办法八、程序清单五、设计过程(设计内容及主要模块,不少于3000字)1.设计要求1)界面设计2)功能实现(1)文件菜单:新建、打开、保存、另存为、退出等。

(2)其中新建菜单项可以新建一个记事本程序;打开菜单项可以打开一个用户指定的文本文件,并将其内容显示在记事本的文本区域;保存和另存为菜单项可分别实现文件的保存和另存为3)编辑菜单:复制、剪切和粘贴等4)帮助菜单:软件版本信5)右键弹出快捷菜单2.总体设计1)功能模块图:图一功能模块图2)功能描述1、打开记事本。

首先是标准型的记事本,拥有文件、编辑。

格式和帮助。

如图1所示:图1标准型记事本界面2、在标准型的记事本界面中,进行的新建一个本件名字叫新记事本。

如图2记事本文件帮助新建打开保存另存为退出复制剪切粘贴编辑关于记事本右键快捷格式字体颜色图2新建记事本功能3、用打开文件打开刚刚新建的新记事本。

如图三所示。

图3—打开文件4、点击退出即可退出,如图4所示:图4—退出记事本5、点击帮助可以看到有关记事本的相关信息,其中有作者名、版本、许可条款、隐私声明等必要信息。

如图5所示:图5—帮助相关信息6、右键可实现复制、粘贴、剪切、清除等常用功能,方便用户可以快捷方便的使用记事本。

如图6所示:图6—右键功能7、编辑也可实现制、粘贴、剪切、清除等常用功能,方便用户选择自己适合的方式,自由选择方便的快捷方式使用。

如图7:图7—编辑八、程序清单package test;import java.io.File;import java.io.*;import java.awt.event.*;import java.awt.Toolkit;import java.awt.*;import javax.swing.*;import javax.swing.filechooser.*;public class Notebook extends JFrame implements ActionListener,ItemListener{ //组件创建JButton b_save,b_close; //按钮JTextArea textArea; //文本框File tempFile; //文件JPanel jp; //面板JMenu file,edit,style,help; //菜单JMenuItemf_new,f_open,f_save,f_close,f_saveas,e_copy, e_paste,e_cut,e_clear,e_selectAll,e_find,e_rep lace,s_font,s_color,h_editor,h_help; //菜单条JMenuBar jmb;JScrollPane jsp; //滚动面板JPopupMenu popUpMenu = new JPopupMenu(); //右键弹出式菜单JLabel stateBar;//标签JLabel jl,jj;JFileChooser jfc = new JFileChooser(); //文件选择JMenuItemje_copy,je_paste,je_cut,je_clear,je_selectAll,je _find,je_replace; //弹出式菜单条public Notebook(){jfc.addChoosableFileFilter(new FileNameExtensionFilter("文本文件(*.txt)","txt"));jmb = new JMenuBar();textArea = new JTextArea();jsp = new JScrollPane(textArea);file = new JMenu("文件");edit = new JMenu("编辑");style = new JMenu("格式");help = new JMenu("帮助");je_copy = new JMenuItem("复制(C) ");je_paste = new JMenuItem("粘贴(P) ");je_cut = new JMenuItem("剪切(X) ");je_clear = new JMenuItem("清除(D) ");je_selectAll = new JMenuItem("全选(A) ");je_find = new JMenuItem("查找(F) ");je_replace = new JMenuItem("替换(R) ");je_copy.addActionListener(this); //给弹窗式的各组件添加监听器je_paste.addActionListener(this);je_cut.addActionListener(this);je_clear.addActionListener(this);je_selectAll.addActionListener(this);je_find.addActionListener(this);je_replace.addActionListener(this);//给界面上方的菜单条添加监听器f_new = new JMenuItem("新建(N)");f_new.setAccelerator(KeyStroke.getKeyS troke('N',InputEvent.CTRL_MASK,false)); //设置带修饰符快捷键f_new.addActionListener(this);f_open = new JMenuItem("打开(O)");f_open.setAccelerator(KeyStroke.getKey Stroke('O',InputEvent.CTRL_MASK,false));f_open.addActionListener(this);f_save = new JMenuItem("保存(S)");f_save.setAccelerator(KeyStroke.getKey Stroke('S',InputEvent.CTRL_MASK,false));f_save.addActionListener(this);f_saveas = new JMenuItem("另存为");f_saveas.setAccelerator(KeyStroke.getKe yStroke(KeyEvent.VK_S,InputEvent.CTRL_ MASK|InputEvent.SHIFT_MASK));f_saveas.addActionListener(this);f_close = new JMenuItem("退出(W)");f_close.setAccelerator(KeyStroke.getKey Stroke('W',InputEvent.CTRL_MASK,false));f_close.addActionListener(this);e_copy = new JMenuItem("复制(C)");e_copy.setAccelerator(KeyStroke.getKey Stroke('C',InputEvent.CTRL_MASK,false));e_copy.addActionListener(this);e_paste = new JMenuItem("粘贴(V)");e_paste.setAccelerator(KeyStroke.getKeyStro ke('V',InputEvent.CTRL_MASK,false));e_paste.addActionListener(this);e_cut = new JMenuItem("剪切(X)"); e_cut.setAccelerator(KeyStroke.getKeyStroke ('X',InputEvent.CTRL_MASK,false));e_cut.addActionListener(this);e_clear = new JMenuItem("清除(D)");e_clear.setAccelerator(KeyStroke.getKeyStrok e('D',InputEvent.CTRL_MASK,false));e_clear.addActionListener(this);e_selectAll = new JMenuItem("全选(A)");e_selectAll.setAccelerator(KeyStroke.getKey Stroke('A',InputEvent.CTRL_MASK,false));e_selectAll.addActionListener(this);e_find = new JMenuItem("查找(F)");e_find.setAccelerator(KeyStroke.getKeyStrok e('F',InputEvent.CTRL_MASK,false));e_copy.addActionListener(this);e_replace = new JMenuItem("替换(R)");e_replace.setAccelerator(KeyStroke.getK eyStroke('R',InputEvent.CTRL_MASK,false)) ;e_replace.addActionListener(this);s_font = new JMenuItem("字体(T)");s_font.setAccelerator(KeyStroke.getKeyStrok e('T',InputEvent.CTRL_MASK,false));s_font.addActionListener(this);s_color = new JMenuItem("颜色(C)...");s_color.setAccelerator(KeyStroke.getKeyStro ke(KeyEvent.VK_C,InputEvent.CTRL_MAS K | InputEvent.SHIFT_MASK));s_color.addActionListener(this);h_editor = new JMenuItem("关于记事本");h_editor.setAccelerator(KeyStroke.getKeyStro ke(KeyEvent.VK_E,InputEvent.CTRL_MAS K));h_editor.addActionListener(this);h_help = new JMenuItem("帮助信息(H)");h_help.setAccelerator(KeyStroke.getKeyStrok e(KeyEvent.VK_I,InputEvent.CTRL_MASK) );h_help.addActionListener(this);//添加右键弹出式菜单popUpMenu.add(je_copy);popUpMenu.add(je_paste);popUpMenu.add(je_cut);popUpMenu.add(je_clear);popUpMenu.addSeparator();popUpMenu.add(je_selectAll);popUpMenu.add(je_find);popUpMenu.add(je_replace);//编辑区鼠标事件,点击右键弹出"编辑"菜单textArea.addMouseListener(new MouseAdapter(){public void mouseReleased(MouseEvent e) {if(e.getButton() == MouseEvent.BUTTON3)popUpMenu.show(e.getComponent(), e.getX(), e.getY());} //e.getComponent()和textArea具有同等效果public void mouseClicked(MouseEvent e){if(e.getButton() == MouseEvent.BUTTON1)popUpMenu.setVisible(false);}});this.setJMenuBar(jmb);this.setTitle("记事本程序");file.add(f_new); //添加文件菜单组件file.add(f_open);file.addSeparator(); //加分隔线file.add(f_save);file.add(f_saveas);file.addSeparator();file.add(f_close);edit.add(e_copy); //添加编辑菜单组件edit.add(e_paste);edit.add(e_cut);edit.add(e_clear);edit.addSeparator();edit.add(e_selectAll);edit.add(e_find);edit.add(e_replace);style.addSeparator();style.add(s_font);style.add(s_color);jmb.add(file); //添加格式菜单组件jmb.add(edit);jmb.add(style);jmb.add(help);help.add(h_editor); //添加帮助菜单组件help.add(h_help);//textArea.setWrapStyleWord(true); //设置在单词过长的时候是否要把长单词移到下一行。

基于java的课课程设计

基于java的课课程设计

基于java的课课程设计一、教学目标本课程的学习目标包括以下三个方面:1.知识目标:通过本课程的学习,学生将掌握Java编程语言的基本语法、数据结构、控制流程、面向对象编程等核心知识。

2.技能目标:学生能够运用Java语言独立完成简单的程序设计任务,具备基本的编程能力和问题解决能力。

3.情感态度价值观目标:培养学生对计算机科学的兴趣和好奇心,提高学生主动学习和探索未知的精神。

在制定教学目标时,充分考虑了课程性质、学生特点和教学要求,将目标分解为具体的学习成果,以便后续的教学设计和评估。

二、教学内容本课程的教学内容主要包括以下几个部分:1.Java语言的基本语法和编程规范。

2.数据类型、运算符和表达式。

3.控制流程:条件语句、循环语句。

4.面向对象编程:类、对象、继承、多态、封装。

5.常用数据结构:数组、链表、树、图。

6.异常处理和文件操作。

7.Java语言的标准库和常用API。

8.简单的Java程序设计实例。

教学内容的选择和遵循科学性和系统性原则,确保学生能够扎实掌握Java编程的基础知识。

三、教学方法为了激发学生的学习兴趣和主动性,本课程将采用多种教学方法:1.讲授法:讲解Java编程的基本概念和知识点,为学生提供系统的知识结构。

2.案例分析法:通过分析实际案例,让学生学会如何运用Java语言解决具体问题。

3.实验法:安排实验室实践环节,让学生动手编写代码,提高编程能力。

4.讨论法:学生进行小组讨论,促进学生之间的交流与合作,培养团队精神。

四、教学资源为了支持教学内容和教学方法的实施,丰富学生的学习体验,我们将准备以下教学资源:1.教材:《Java编程思想》或《Java核心技术》。

2.参考书:提供一些Java编程相关的参考书籍,方便学生深入学习。

3.多媒体资料:制作课件、视频教程等,帮助学生更好地理解教学内容。

4.实验设备:计算机、网络设施等,为学生提供实验室实践的条件。

五、教学评估为了全面、客观、公正地评估学生的学习成果,本课程将采用以下评估方式:1.平时表现:通过课堂参与、提问、讨论等环节,评估学生的学习态度和积极性。

java照片查看器源代码

java照片查看器源代码

package ioStream;import java.awt.AWTEvent;import java.awt.Color;import java.awt.Graphics;import java.awt.Graphics2D;import java.awt.Image;import java.awt.Toolkit;import java.awt.event.AWTEventListener;import java.awt.event.ActionEvent;import java.awt.event.ActionListener;import java.awt.event.KeyEvent;import java.awt.event.MouseWheelEvent;import java.awt.event.MouseWheelListener;import java.awt.geom.AffineTransform;import java.io.File;import java.util.LinkedList;import java.util.List;import javax.swing.ImageIcon;import javax.swing.JFileChooser;import javax.swing.JFrame;import javax.swing.JPanel;import javax.swing.Timer;import javax.swing.UIManager;import javax.swing.filechooser.FileNameExtensionFilter;/** 该代码意在实现照片查看器的功能* 当按下“右箭头”时浏览下一张图片* 当按下“左箭头"时浏览上一张图片* 实现循环浏览* 当按下"Ecs"时推出全屏浏览模式* 当按下CTRL+“上箭头”时,全屏显示* 只能浏览指定文件夹下面的所支持格式的图片(gif,jpg,png)*链表的大小与他的最大角标相隔1*/public class PicsViewer {static JFrame frame0;//原始的全屏显示的窗口static int SWidth=Toolkit.getDefaultToolkit().getScreenSize().width;static int SHeight=Toolkit.getDefaultToolkit().getScreenSize().height;static Image icon=(new ImageIcon("PicsViewer/img.png")).getImage();//框架图标JFileChooser chooser; //声明一个文件选择器对象static JPanel imgjp;static Image img0=(new ImageIcon("image/cat.png")).getImage();//默认的一张图片File files;static int j=0;static int k=0;static File root;static int i=0;Timer T00;String[] Str;//获取文件名字符串static Image img;static int xCoor,yCoor;//打印图片的左上角坐标static int PWidth,PHeight;//图片的宽高(小于屏幕宽高的时候的)static int PWidth0,PHeight0;//图片宽高大于屏幕宽高的时候的图片宽高String CPath;//直接获得的路径String newPath;//经过转换后的路径static List<Image> list=new LinkedList<Image>();int index=0;static int index0=0;static double xCoor0=1,yCoor0=1;//图片在X轴缩放的倍数,图片在Y轴的缩放倍数;static boolean isFull=true;//是否全屏显示static int now;//当前正在使用的图片public PicsViewer(){frame0=new JFrame();imgjp=new ImgsPanel();imgjp.setBackground(new Color(51,51,51));frame0.add(imgjp);frame0.setTitle("PicsViewer1.0");frame0.setSize(SWidth,SHeight);frame0.setUndecorated(isFull);frame0.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);//不设置窗口的位置,是因为窗口默认的位置就是在桌面的左上角frame0.setIconImage(icon);//设置窗口图标frame0.setVisible(true);/** 程序一启动就弹出文件选择对话框让用户选择所要浏览的图片*/try {UIManager.setLookAndFeel("com.sun.java.swing.plaf.windows.WindowsLookAndFeel");//设置为当前操作系统的外观JFileChooser chooser = new JFileChooser();chooser.setDialogTitle("请选择要查看的图片");chooser.addChoosableFileFilter(new FileNameExtensionFilter("常见图片格式", "jpg", "gif", "png"));chooser.showOpenDialog(frame0);int returnVal = chooser.showOpenDialog(frame0);if(returnVal == JFileChooser.APPROVE_OPTION) {img=(new ImageIcon(chooser.getSelectedFile().toString())).getImage();CPath=chooser.getCurrentDirectory().toString()+System.getProperty("file.separator");newPath=CPath.replaceAll("\\\\","/");//路径转换root=new File(newPath);img0=img;imgjp.repaint();findImage(root);}} catch (Exception evt) {}Toolkit toolkit = Toolkit.getDefaultToolkit();toolkit.addAWTEventListener(new ShortcutKeyListener(), AWTEvent.KEY_EVENT_MASK | AWTEvent.MOUSE_EVENT_MASK| AWTEvent.WINDOW_EVENT_MASK);/*添加键盘监听事件,当点击键盘上的方向键右键时浏览下一张图片,点击左箭头浏览上一张,当按下上箭头时对当前图片进行放大操作* 当按下下箭头时,对当前浏览的图片进行缩小操作* 同时添加鼠标滚轮监听事件,也对当前图片进行缩放操作**/imgjp.addMouseWheelListener(new MouseWheelListener(){public void mouseWheelMoved(MouseWheelEvent e){if(e.getWheelRotation()<0){//如果鼠标滚轮向上滚动,则放大图片}else{//否则缩小图片}}});}public void findImage(File dir){File[] files=dir.listFiles();//得到当前路径下的所有文件和文件夹for(int i=0; i<files.length; i++){Str=new String[files.length];Str[i]=files[i].getAbsolutePath();//将路径和文件名存入字符串数组//使用链表替代数组if(Str[i].endsWith(".jpg")||Str[i].endsWith(".gif")||Str[i].endsWith(".png")==true){list.add(index,(new ImageIcon(Str[i])).getImage());index++;}}}//画图的算法有点问题????static class ImgsPanel extends JPanel{private static final long serialVersionUID = 1L;public void paintComponent(Graphics g){super.paintComponent(g);Graphics2D G2=(Graphics2D)g;AffineTransform Trans=new AffineTransform();PWidth=img0.getWidth(null);PHeight=img0.getHeight(null);if(PWidth<=SWidth&&PHeight<=SHeight){xCoor=(SWidth-PWidth)/2;yCoor=(SHeight-PHeight)/2;PWidth0=PWidth;PHeight0=PHeight;Trans.scale(xCoor0,yCoor0);//对图片的缩放操作// G2.setTransform(Trans);}if(PWidth>SWidth||PHeight>SHeight){yCoor0=SHeight/(PHeight*1.0);PHeight0=SHeight;PWidth0=(int)(PWidth*yCoor0);xCoor0=yCoor0;xCoor=(SWidth-PWidth0)/2;yCoor=-(PHeight0-SHeight)/2;Trans.scale(xCoor0,yCoor0);//对图片的缩放操作// G2.setTransform(Trans);}G2.drawImage(img0,xCoor,yCoor,PWidth0,PHeight0,this);}}static class Tim implements ActionListener{public void actionPerformed(ActionEvent e){//看来变量最好不要用相同的变量名img0=(Image)(list.get(index0));index0++;if(index0==list.size()){index0=0;img0=(Image)(list.get(index0));index0++;imgjp.repaint();}imgjp.repaint();}}static class ShortcutKeyListener implements AWTEventListener { public void eventDispatched(AWTEvent e) {if (e.getClass() == KeyEvent.class) {// 被处理的事件是键盘事件.KeyEvent keyEvent = (KeyEvent) e;if (keyEvent.getID() == KeyEvent.KEY_PRESSED) {keyPressed(keyEvent);} else if (keyEvent.getID() == KeyEvent.KEY_RELEASED) {keyReleased(keyEvent);}}}/** 当只有一张图片是抛出异常,不能使用左右方向键,待解决*/private void keyPressed(KeyEvent e) {switch(e.getKeyCode()){case KeyEvent.VK_RIGHT: if(list.size()!=1){img0=(Image)(list.get(index0));now=index0;index0++;if(index0==list.size()-1){index0=0;img0=(Image)(list.get(index0));now=index0;index0++;imgjp.repaint();}imgjp.repaint();}else{img0=(Image)(list.get(index0));imgjp.repaint();}break;case KeyEvent.VK_LEFT:if(list.size()!=1){if(index0>0){img0=(Image)(list.get(index0));now=index0;index0--;imgjp.repaint();}if(index0<0){index0=list.size()-1;img0=(Image)(list.get(index0));now=index0;index0--;imgjp.repaint();}}else{index0=list.size()-1;img0=(Image)(list.get(index0));now=index0;index0--;imgjp.repaint();}break;case KeyEvent.VK_ESCAPE:isFull=false;frame0=new JFrame();imgjp=new ImgsPanel();imgjp.setBackground(new Color(51,51,51));frame0.add(imgjp);frame0.setTitle("PicsViewer1.0");frame0.setSize(SWidth,SHeight);frame0.setUndecorated(isFull);frame0.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);frame0.setIconImage(icon);//设置窗口图标frame0.setVisible(true);break;}if ((e.isControlDown() == true)&& (e.getKeyCode() == KeyEvent.VK_UP)) { isFull=true;frame0=new JFrame();imgjp=new ImgsPanel();imgjp.setBackground(new Color(51,51,51));frame0.add(imgjp);frame0.setTitle("PicsViewer1.0");frame0.setSize(SWidth,SHeight);frame0.setUndecorated(isFull);frame0.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);frame0.setIconImage(icon);frame0.setVisible(true);}}private void keyReleased(KeyEvent event) {}}public static void main(String[] args){new PicsViewer();}}。

《Java程序设计》课程设计任务书

《Java程序设计》课程设计任务书

《Java程序设计》课程设计任务书一.课程设计基本信息课程名称:《Java程序设计》课程设计学时:1周学分:1学分二.课程设计目的与要求1.教学目的:本课程是学习《Java程序设计》后的综合实践课,使学生能够比较深入的理解Java 语言的特征及体系;熟练的掌握并会运用Java语言与面向对象程序设计的思想和方法设计应用程序解决应用问题,积累程序设计的实践经验,为培养软件技术高技能人才奠定基础。

本课程是培养计划中综合性较强的实践教学环节之一,帮助学生掌握教学内容、培养学生运用知识解决应用问题的实际动手能力、提高学生综合素质有很重要的意义。

2.教学要求:本课程设计以设计一个或多个实际应用系统为目的,通过课程设计让学生较全面的掌握Java语法基础知识、面向对象程序设计方法,尤其是基于Java的应用程序设计的方法与技术,能够运用J2SE平台,结合相应的数据库系统开发应用程序,理论联系实际,达到培养实践操作技能的目的。

学生要了解Java程序开发的一般过程,特别掌握系统分析与设计的基本方法,写出系统分析与设计报告,并能设计真实可用的应用系统。

三.课程设计内容与安排根据老师提供的设计题目,写出系统分析与设计报告,并建立原型系统。

题目可以由教师与学生根据实际情况商定,可参考的题目:图书借阅管理系统、产品管理系统、学生成绩管理、学生信息管理、人事管理、人力资源管理系统、物流信息管理系统等。

1.主要设计内容如下:(1)系统设计:包括系统需求分析、总体设计和功能设计,必要时使用图表说明。

(2)各功能模块设计:包括用户界面及相应功能算法等设计。

(3)各功能模块实现:各功能模块算法程序编写。

2.教学安排总课时30课时,其中需求分析与系统设计、数据库设计与实现、系统各模块实现所以及系统集成调试运行用时间建议各占15%,15%,40%,20%的课时,学生可根据具体情况调整,利用10%的时间完成课程设计报告。

四.课程设计教学建议及要求1.要求学生有一定的程序设计和数据库基础知识,由老师指定或学生自行组织形成项目小组,必要时由多人开发一个项目,其中需要指定负责项目的小组长控制项目进度。

Java面向对象程序设计案例教程课件:图形用户界面开发与事件处理

Java面向对象程序设计案例教程课件:图形用户界面开发与事件处理

《Java面向对象程序设计案例教程》
7.2 Swing基础
• Swing组件是Java语言提供的第二代GUI设计工 具包,它以AWT为基础,在AWT内容的基础上 新增或改进了一些GUI组件,使得GUI程序功能 更强大,设计更容易、更方便。
• Swing与AWT有以下不同。
• (1) Swing是完全用Java语言编写的,所以称 Swing组件是轻量级组件,没有本地代码,不依 赖操作系统的支持,比AWT构件具有更强的实 用性。Swing在不同的平台表现一致,并且有能 力提供本地窗口系统不支持的其他特性。
《Java面向对象程序设计案例教程》 • Swing的类层次结构如图所示:
《Java面向对象程序设计案例教程》
• 3. 简单的范例 • 一个简单的Swing GUI应用程序。该程序生成一个窗
口, • 窗口中有一个标签,用于显示输出。 • (1) 程序代码: • 1. import java.awt.* ; • 2. import javax.swing.* ; • 3. public class SwingDemo • 4. { • 5. public static void main(String args[]) • 6. { • 7. JFrame fm = new JFrame("第一个Windows程序") ; • 8. JLabel label = new JLabel("这是第一个GUI程序") ;
• 教材例题7-12 利用组合框显示、选取地名。
• 教材例题8.2 ,例题8.3用不同方法生成JFrame窗口
《Java面向对象程序设计案例教程》
• 7.3.2 面板容器JPanel
• 面板JPanel也是Java中常用到的容器之一,面板是一种透明 的容器,既没有标题,也没有边框,就像一块透明的玻璃。 与JFrame不同,它不能作为最外层的容器单独存在,它首 先必须作为一个构件放置到其他容器中,然后再把它作为容 器,把其他构件放到其中。

基于的图片浏览器的设计与实现

基于的图片浏览器的设计与实现
优化图片的加载和传输速 度,提高用户体验。
数据安全
采取必要的安全措施,保 护用户数据不被泄露或损 坏。
04
CATALOGUE
基于的图片浏览器实现
界面实现
用户界面设计
01
设计简洁、直观的用户界面,使用户能够轻松浏览和操作图片
。界面元素包括图片预览区、图片列表、工具栏等。
响应式布局
02
采用响应式设计,确保界面在不同设备和屏幕尺寸上都能良好
安全性与隐私保护
在设计和实现浏览器的过程中,我们严格遵循了安全性和隐私保护的原则。我们采用了先进的数据加密 技术和隐私保护策略,以确保用户数据的安全和隐私。
未来工作展望
01
新功能开发
我们将继续研究和开发新的功能,以 满足用户不断变化的需求。例如,我 们计划增加支持图片编辑、滤镜效果 和3D视图等功能。
及这些操作是否能够正常工作。
性能评估
测试浏览器的加载速度
检查浏览器加载图片的速度,包括加载单个图片和批量加载 图片的速度。
测试浏览器的内存占用
检查浏览器在加载和显示图片时的内存占用情况,以确保浏 览器不会因为内存不足而崩溃。
测试浏览器的稳定性
检查浏览器在长时间运行过程中是否会出现崩溃或异常情况 。
随着移动设备的普及,用户对于移动端图片浏览器的需求也日益增长。移动端图片浏览器需要具备更 加丰富的功能,如缩放、旋转、滤镜、裁剪等,以满足用户在移动设备上处理和分享图片的需求。
目的和意义
基于的图片浏览器设计与实现旨在开 发一款功能丰富、用户体验良好的图 片浏览器。该浏览器将提供图片查看 、编辑、分享等功能,满足用户对于 图片处理的需求。
02
性能优化
我们将不断优化浏览器的性能,以提 高用户的使用体验。我们将研究新的 图像处理技术和算法,以提高浏览器 的加载速度和显示效果。

javaee课程设计

javaee课程设计

javaee课程设计一、课程目标知识目标:1. 理解Java EE的基本概念,掌握Java EE平台的架构和核心组件。

2. 学会使用Servlet技术进行服务器端编程,掌握请求与响应的处理方法。

3. 掌握JSP页面开发技术,能够运用JSTL和EL表达式构建动态网页。

4. 了解Java EE常用的数据库连接技术,掌握JDBC操作数据库的基本方法。

5. 熟悉Java EE项目的部署和运行过程。

技能目标:1. 能够独立搭建Java EE开发环境,配置服务器和数据库。

2. 掌握使用Eclipse等开发工具进行Java EE项目开发。

3. 运用Servlet和JSP技术,实现用户登录、注册、列表展示等功能。

4. 学会使用JDBC进行数据库的连接、查询、更新和删除操作。

5. 能够编写基本的Java EE项目文档,进行项目测试和调试。

情感态度价值观目标:1. 培养学生对Java EE技术的兴趣和热情,激发学习编程的积极性。

2. 培养学生的团队合作精神,学会在项目中分工与协作。

3. 培养学生严谨、细心的编程习惯,提高代码质量和效率。

4. 培养学生面对问题敢于挑战、积极解决的态度,增强自信心。

5. 使学生认识到编程在现代社会中的重要作用,树立正确的价值观。

本课程针对高年级学生,课程性质为理论与实践相结合。

在教学过程中,注重学生对Java EE技术的掌握和实际应用能力的培养,结合学生特点和教学要求,将课程目标分解为具体的学习成果,为后续的教学设计和评估提供依据。

二、教学内容1. Java EE概述- 了解Java EE的发展历程和核心概念。

- 掌握Java EE平台的架构及各层组件的作用。

2. 开发环境搭建- 安装和配置Java EE服务器(如GlassFish、WildFly)。

- 安装和熟悉Java EE开发工具(如Eclipse)。

- 配置数据库环境(如MySQL)。

3. Servlet技术- 学习Servlet的生命周期方法。

Java程序设计案例教程第二版课程设计

Java程序设计案例教程第二版课程设计

Java程序设计案例教程第二版课程设计1. 简介本课程设计是基于《Java程序设计案例教程》第二版的内容展开的,旨在加深学生对Java编程语言的理解,并通过编写实际代码来提高编程能力。

在课程设计过程中,学生需要独立完成多个小项目的编写,以综合应用已学知识,实现目标程序的功能。

2. 课程设计要求本课程设计要求学生独立完成三个项目的编写,每个项目都需要具体的功能实现,如下所示:2.1 计算器设计编写一个 Java 简单计算器,实现四则运算的功能,包括加、减、乘、除、开方、百分号等运算。

样式上需要参考Windows系统的计算器界面。

通过此项目,学生将掌握Java语言的基本运算符的使用方法,理解基本数学运算的实现机制,并且学习掌握Java图形用户界面(GUI)的设计方法。

2.2 用户信息管理系统编写一个Java用户信息管理系统,实现对用户信息的增、删、改、查的操作,其中信息包括姓名、性别、年龄、联系方式等内容。

通过此项目,学生将掌握Java类的设计和使用,了解Java中不同访问控制修饰符的使用方法,并且学习掌握Java文件的读写操作。

2.3 图书管理系统编写一个Java图书管理系统,实现对图书信息的增、删、改、查的操作,其中信息包括图书名称、作者、价格、出版时间等内容。

通过此项目,学生将进一步掌握Java类、方法的设计和使用,了解Java面向对象的编程思想,并且学习掌握Java集合类的使用方法。

3. 实现过程学生可以自行选择开发环境和使用的编程语言版本,推荐使用Java 1.8及以上的版本。

在编写项目代码过程中,学生需要采用面向对象的编程思想,遵循良好的编程规范,严格按照课程设计要求完成每个项目。

为了方便批改和评分,学生需要实现以下功能:•实现项目功能的详细描述文档•代码注释规范,注明作者及编写时间等信息•提供具有实用意义的测试数据,并能够正确输出结果•有清晰、简洁、易懂的代码质量4. 评分标准课程设计是学生综合理解Java编程语言并学以致用的一个重要机会,因此在评分时将重点关注以下几点:•代码的正确性:能否实现各项功能要求•代码的规范性:是否符合规范,是否有良好的注释•代码的可读性:是否具有良好的代码结构,是否易于阅读和理解•前端UI:是否有良好的交互效果,是否美观5. 总结通过本课程设计,学生将掌握Java语言的基本运算符的使用方法,理解基本数学运算的实现机制,并且学习掌握Java图形用户界面(GUI)的设计方法。

C#图片浏览器

C#图片浏览器

2、实现过程1)图片浏览器界面:界面简洁,功能明了。

(如图)图片浏览界面展示1(指定文件打开方式):图片浏览界面展示2(目录树中打开选择图片文件夹):listView中可选择显示方式private void ToolStripMenuItem_Click(object sender, EventArgs e){OpenFileDialog openFile = new OpenFileDialog();openFile.Filter = "*.jpg;*.bmp|*.jpg;*.bmp;";if (openFile.ShowDialog() == DialogResult.OK){Bitmap srcBitmap = new Bitmap(openFile.FileName);myBitmap = new Bitmap(srcBitmap, this.pictureBox1.Width, this.pictureBox1.Height);this.pictureBox1.Image = myBitmap;//this.pictureBox1.Image = Image.FromFile(openFile.FileName); }}2.2双击listView选定项,展示选定图片private void listView1_MouseDoubleClick(object sender, MouseEventArgs e){ListViewItem item = listView1.SelectedItems[0];index = item.ImageIndex;pictureBox1.Load(arrPath[index]);}2.3图片变换private void buttonLeftToRight_Click(object sender, EventArgs e){if (pictureBox1.Image != null){//左到右拉伸g = this.pictureBox1.CreateGraphics();g.Clear(this.BackColor);for (int x = 0; x <= width; x++){g.DrawImage(this.pictureBox1.Image, 0, 0, x, height);}g.Dispose();}}private void buttonUptoDown_Click(object sender, EventArgs e){if (pictureBox1.Image != null){//上到下拉伸g = this.pictureBox1.CreateGraphics();//初始为灰色g.Clear(Color.Gray);for (int y = 0; y <= height; y++){g.DrawImage(this.pictureBox1.Image, 0, 0, width, y);}g.Dispose();}}private void buttonReversal_Click(object sender, EventArgs e){if (pictureBox1.Image != null){//反转g = this.pictureBox1.CreateGraphics();g.Clear(this.BackColor);for (int x = -width / 2; x <= width / 2; x++){Rectangle DestRect = new Rectangle(0, height / 2 - x, width, 2 * x);Rectangle SrcRect = new Rectangle(0, 0, this.pictureBox1.Image.Width, this.pictureBox1.Image.Height);g.DrawImage(this.pictureBox1.Image, DestRect, SrcRect,GraphicsUnit.Pixel);}g.Dispose();}}private void buttonMiddletoSide_Click(object sender, EventArgs e){if (pictureBox1.Image != null){//中间向两边拉伸g = this.pictureBox1.CreateGraphics();//初始为灰色g.Clear(Color.Gray);for (int y = 0; y <= width / 2; y++){Rectangle DestRect = new Rectangle(width / 2 - y, 0, 2 * y, height);Rectangle SrcRect = new Rectangle(0, 0, this.pictureBox1.Image.Width, this.pictureBox1.Image.Height);g.DrawImage(this.pictureBox1.Image, DestRect, SrcRect,GraphicsUnit.Pixel);}g.Dispose();}}private void buttonExpand_Click(object sender, EventArgs e){if (pictureBox1.Image != null){//中间向四周扩散g = this.pictureBox1.CreateGraphics();g.Clear(this.BackColor);for (int x = 0; x <= width / 2; x++){Rectangle DestRect = new Rectangle(width / 2 - x, height / 2 - x, 2 * x, 2 * x);Rectangle SrcRect = new Rectangle(0, 0, this.pictureBox1.Width,this.pictureBox1.Height);g.DrawImage(this.pictureBox1.Image, DestRect, SrcRect,GraphicsUnit.Pixel);}g.Dispose();}}private void button5_Click(object sender, EventArgs e)//右旋{if (pictureBox1.Image != null){pictureBox1.Image.RotateFlip(RotateFlipType.Rotate90FlipNone);pictureBox1.Refresh();}}private void button7_Click(object sender, EventArgs e)//左旋{if (pictureBox1.Image != null){pictureBox1.Image.RotateFlip(RotateFlipType.Rotate270FlipNone);pictureBox1.Refresh();}}2.4幻灯片播放private void timer1_Tick(object sender, EventArgs e) //播放时展示下一张{if (index < arrPath.Length - 1){pictureBox1.Load(arrPath[++index]);}else { index = 0; pictureBox1.Load(arrPath[index]); }}private void button3_Click(object sender, EventArgs e)//开始播放幻灯片{if (pictureBox1.Image != null){timer1.Enabled = true;}}private void button4_Click(object sender, EventArgs e)//停止播放幻灯片{if (pictureBox1.Image != null){timer1.Enabled = false;}}2.4浏览上一张和下一张(此功能不适用与指定文件打开方式)private void button1_Click(object sender, EventArgs e)//查看上一张{if (pictureBox1.Image != null){if (index > 0){pictureBox1.Load(arrPath[--index]);}else { index = arrPath.Length; pictureBox1.Load(arrPath[--index]); } }}private void button2_Click(object sender, EventArgs e)//查看下一张{if (pictureBox1.Image != null){if (index < arrPath.Length - 1){pictureBox1.Load(arrPath[++index]);}else { index = 0; pictureBox1.Load(arrPath[index]); }}}。

Java课程设计参考教材

Java课程设计参考教材

1、Java课程设计案例精编作者:张广彬、孟红蕊、张永宝出版社:清华大学出版社ISBN:9787302141532 出版时间:2007年01月定价:45元2、Java课程设计案例精编(第二版)作者:黄晓东等编著现价:23.2元出版社:中国水利水电出版社ISBN:9787508444505出版日期:2007-04定价:29元3、Java课程设计(第二版)作者:耿祥义出版社:清华大学出版社ISBN:9787302184287出版时间:2008-11-1 定价:29.5元4、《JAV A课程设计》作者:黄明等编著, 出版社:电子工业出版社, ISBN:7-121-02742-9出版日期:2006-6- ,定价:¥19.8元5、Java程序设计课程设计作者:辛运帏高宁徐文栓等著出版社:机械工业出版社出版日期:2005-03 ISBN:711115653定价:23元Java课程设计案例精编作者:张广彬、孟红蕊、张永宝图书详细信息:ISBN:9787302141532定价:45元印次:1-3装帧:平装印刷日期:2008-3-5图书简介:Java语言已成为软件设计开发应当掌握和一门基础语言。

本书为Java调和设计指导用书,共分11章,具体内容包括:Java环境的安装与配置、Java语言编程的基础知识、Java语言中最重要的类与对象、网页浏览器案例、蜘蛛纸牌案例、吃豆子游戏案例、端口扫描案例、聊天程序案例、连连看游戏案例、中国象棋对弈系统案例、学生管理信息系统案例。

本书以案例带动知识点的讲解,向读者展示实际项目的设计思想和设计理念,使其可举一反三。

每个实例各有侧重点,避免实例罗列和知识点重复,并提供完整的项目实现代码,附于配书光盘中。

本书案例典型,选择目前高校课程设计的典型项目,并注重切合实际应用,使读者真正做到学以致用。

本书适合作为高等院校学生Java课程设计指导用书,也可作为Java语言程序开发人员及爱好者的指导用书。

几种常用的全景图片浏览软件(插件)及其性能

几种常用的全景图片浏览软件(插件)及其性能

几种常用的全景图片浏览软件(插件)及其性能网站与多媒休展示360全景作品,必须经过:拍摄、全景照片的合成,漫游制作,最后,还再需要选用合适播放软件,把它嵌入网页。

1 .Java Applet:Java是常用的显示插件,优点是文件尺寸小,下载快(只有20-50K),自动下载自动安装。

常用的Applet有:lpjpano或ptviewer,支持球形,柱形,立方体。

以前几乎有80%的全景使用Java Applet。

缺点是: 幅面小,图像质量差,动态显示有跳动感,不连续,站用系统的资源较多。

2 . QTVR: QTVR美国苹果公司的专业全景技术,它的显示插件是: Quicktime, 是在互联网上早期使用最多的专用插件,现在也使用ActiveX控件。

Quicktime是一个通用的视频音频播放器,它支持多达200多种文件格式。

全世界有据说1亿人安装了它,它也支持苹果公司QTVR全景技术。

Quicktime文件尺寸比较大(甚至于达到10M),需要下载,不能自动安装。

QTVR的优点是: 幅面大,图像质量好,即可以在互联网上,也可以在本地主机上显示高质量全景,如果您已经安装了Quicktime,这是观看高质量全景的最好选择。

Quicktime在早期仅能显示柱形全景,上下视野受到了限制,自从推出Quicktime 5以后,它支持立方体全景(cubic),使到更多的人开始使用Quicktime的文件格式(.mov)制作和显示高质量全景,由于Quicktime主要用于视频音频播放,许多人已经安装了Quicktime,因此也不必再下载插件,它的缺点是视像小,不能全屏播放,高版本要付费注册。

3.Adobe Flash PlayerFlash是一款高级客户端运行时使用的播放器。

它短小精悍,能够在各种浏览器、操作系统和移动设备上使用,功能强大,兼容性高,全屏显示画面,而且是免费软件。

现在大部份连接Internet 的桌面计算机和移动设备上都安装了Flash Player,随着网络速度与品质的提升,越来越多的网站开始使用Flash来表达网站的内容,以Flash强大的动画与向量画效果来弥补一般动画与HTML指令的不足。

java的imageview使用方法

java的imageview使用方法

java的imageview使用方法ImageView是Android中提供的一种用于显示图片的控件,使用起来非常的方便。

在Java中,也可以使用ImageView对图片进行操作和展示。

下面将介绍一下Java中的ImageView使用方法。

步骤一:创建一个ImageView控件创建ImageView的方法如下:```ImageView imageView = new ImageView();```这里可以根据需要设置控件的宽度、高度、位置等属性。

步骤二:加载图片资源要使ImageView真正展示图片,需要将图片资源加载到ImageView中。

可以使用以下方法将图片资源加载到ImageView中:```Image image = new ImageIcon("图片路径").getImage(); imageView = new ImageView(image);```上面的代码中,首先通过ImageIcon构造函数将图片资源路径传入,得到一个ImageIcon对象,然后通过getImage()方法获取到Image对象,最后将Image对象加载到ImageView中。

步骤三:设置图片大小如果需要对图片的大小进行控制,可以使用以下方法:```imageView.setFitWidth(300);imageView.setFitHeight(200);```上面的代码中,首先使用setFitWidth()方法设置图片的宽度,使用setFitHeight()方法设置图片的高度。

步骤四:设置图片位置在Java中,ImageView控件的位置可以在父控件中设置。

可以使用以下方法将ImageView添加到父控件中:```pane.getChildren().add(imageView);```其中,pane是父控件的名字。

步骤五:显示图片最后一步是显示图片,只需启动Java应用程序即可显示图片。

java程序设计》课程设计

java程序设计》课程设计

java程序设计》课程设计一、教学目标本课程旨在通过Java程序设计的学习,让学生掌握Java编程的基本语法、概念和编程思想,培养学生运用Java语言解决实际问题的能力。

具体的教学目标如下:1.知识目标:(1)理解Java语言的基本语法和数据结构;(2)掌握Java程序设计的基本流程,包括编码、编译、运行和调试;(3)熟悉Java语言的面向对象编程思想,了解类、对象、封装、继承和多态等概念;(4)学习常用的Java类库和API,能够运用它们解决实际问题。

2.技能目标:(1)能够使用Java语言编写简单的程序,如计算器、文本编辑器等;(2)具备阅读和理解Java程序的能力,能够对现有程序进行修改和优化;(3)掌握Java程序的调试技巧,能够快速定位和解决问题;(4)能够运用Java语言独立解决实际问题,具备一定的编程实践能力。

3.情感态度价值观目标:(1)培养学生对计算机科学的兴趣,激发学生主动学习和探究的精神;(2)培养学生团队合作意识,学会在团队中相互协作、共同进步;(3)培养学生良好的编程习惯,注重代码的可读性和可维护性;(4)培养学生面对挑战、勇于创新的精神,鼓励学生不断尝试和突破自己。

二、教学内容本课程的教学内容主要包括Java语言的基本语法、数据结构、面向对象编程思想和常用类库。

具体的教学大纲如下:1.第1-2周:Java语言的基本语法和数据结构,包括变量、数据类型、运算符、控制语句、数组、字符串等;2.第3-4周:面向对象编程思想,包括类、对象、封装、继承和多态等概念,以及常用的类库和API;3.第5-6周:Java程序设计的基本流程,包括编码、编译、运行和调试,以及常用的开发工具和环境;4.第7-8周:常用类库和API的学习,包括输入输出、网络编程、集合框架、多线程等;5.第9-10周:综合练习和实战项目,运用所学知识解决实际问题,提高编程实践能力。

三、教学方法本课程采用讲授法、案例分析法和实验法等多种教学方法,以激发学生的学习兴趣和主动性。

图片查看器

图片查看器

Java程序设计学期作业项目报告题目图片查看器姓名薛晓欣学号 2013041269年级 2013级2班系别物联网学院计算机信息与工程学院指导教师李红宇学期 2014~2015学年第二学期2015年07月1日目录1设计内容 (1)2设计要求 (1)3总体设计 (1)4详细设计 (4)5测试分析 (17)6总结 (19)图片查看器1设计内容本次设计的图片查看器实现了在用户选定的文件目录下循环浏览指定后缀的图片文件,并且可以对选择的图片进行放大,缩小,左旋,右旋,另存,彻底删除等操作。

2设计要求随着数字产品渐进人们的生活,网络通信技术、图像处理技术以及多媒体技术的发展,越来越多的用户希望能够对已有的数字图片进行查看并能够实现简单的操作。

本图片查看器以其简洁明了易操作的特点实现图片查看的基本功能,从而也就满足了用户的基本要求。

3总体设计(1)系统功能分析本系统要用到以下的Java编程技术实现的功能:图像显示功能:客户需要显示图片,这将由图像显示功能来完成。

显示图片的时候,用到了双缓冲技术来消除闪烁问题。

(2)类图系统中用到了一些基本类、实现了一些接口。

系统所用到的类如图1所示:图1 系统类图4详细设计1)程序中引用的类①JPanel类程序中定义了三个Jpanel类分别是:pathBar, picContainer, ctrBar。

用于图片查看器的整体布局。

其中pathBar为顶部路径栏,picContainer为图片显示区域,ctrBar为底部控制栏。

②JLabel类程序中定义了类名为pathInfo的JLabel类,用于实现顶部路径栏,底部控制栏按钮的文字显示。

③JButton类程序中定义了多个JButton类:openbtn, prebtn, nextbtn, zoominbtn, zoomoutbtn, oripicbtn, angleleftbtn, anglerightbtn,exitbtn,deletebtn,sav;为查看器的按钮。

  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()-image_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();}}public void comp onen tMoved(Comp onen tEve nt e){}public void comp onen tShow n( Comp onen tEve nt e){}public void componentHidden(ComponentEvent e){}public void zoom(){if(bi == n ull)return;int scree n_width = this.getWidth();int scree n_height = this.getHeight();double scree n_proporti on = 1.0 * scree n_height / scree n_width;System.out.pri ntl n("scree n: w "+scree n_width+" ,h "+scree n_height+" ,p0 "+scree n_proporti on);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_proporti on);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);} _im = bi.getScaledl nsta nce(image_width,image_height,lmage.SCALE_SMOOTH);} ~ ~ 一}package C;import java.awt.*;import java.awt.event.*;import java.awt.image.*;import java.io.*;import javax.imageio.*;public class T implements ActionListener{private privateFrame frame; MyCa nvas mc;private Stri ng fpath ; private Stri ng fname; private File[] files ;private int findex ;private FileDialog fd_load ;private MyFilter filter ;private Butt on previous ;private Butt on n ext ;public static void main( String args[]) throws Exception { n ewT().i ni t();}public void in it(){frame = n ewFrame( "Pictureviewer");Panel pb = n ewPa nel();Button select = newButton("选择图片"); previous = newButton("上——"); next = newButton( ”下一");select.addActionListener( this );previous .addActionListener( this );next .addActionListener( this );pb.add(select);pb.add( previous );pb.add( n ext);mc= n ewMyCa nvas(); mcsetBackground( newColor(200,210,230));mcaddComponentListener( m();frame.add(pb, "North");frame .add( mc "Center");frame .setSize(360,360);frame .setLocati on (400,200);frame .addWindowListener( newWindowAdapter(){public void windowClosing(WindowEvent e){System. exit (0);}});frame.setVisible( true );this .validateButton();filter = newMyFilter();fd」oad = n ewFileDialog( frame,"打开文件”,FileDialog. LOADfd」oad .setFilenameFilter( filter );} _public void action Performed(Acti on Eve nt e){Stri ng comma nd = e.getActio nComma nd();if (command.equals(” 选择图片")){fd」oad .setVisible( true );fpath = fd」oad .getDirectory();fname = fd_load .getFile();if ((fpath != null ) && ( fname != null )){this .display( newFile( fpath + fname));files = newFile( fpath ).listFiles( filter );this .setIndex();}} else if (command.equals(” 上一")){findex --;if (findex <0)fin dex = 0;this .display( files [ findex ]);} else if (command.equals(” 下一")){fin dex ++;if (findex >= files . length )findex = files . length -1;this .display( files [ findex ]);}this .validateButton();}public void display(File f){try {BufferedImage bi = ImageIO. read (f);mcsetImage(bi);frame .setTitle( "PictureViewer - [" + f.getName() + "]");} catch (Exception e){e.pri ntStackTrace();}mcrepai nt();}public void set In dex(){File current = newFile( fpath + fname);if (files != null ){for (int i=0;i< files . length ;i++){if (current.equals( files [i])){fin dex = i;}}}}public void validateButton(){previous .setEnabled(( files != null ) && ( findex > 0));next .setEnabled(( files != null ) && ( findex <(files . length -1))); }}五.运行调试与分析讨论5.1.将同一目录下的图片按缩略图打开5.2. 单打开图片53按”上一”,”下一”按钮打开图片厂[占」Piutu苗W合//卽-[気jpq] [ 口I六. 设计体会与小结我通过这次编程实践学习到了 Image 和Griphics 相关的类的使用。

相关文档
最新文档