java画板课程设计报告
绘图JAVA程序报告(含程序)
本次编程工具为 UltraEdit。
3 系统流程
开始
曲线 按钮
直线 按钮
画圆 按钮
矩形 按钮
粗线 按钮
填充 颜色
清除
画笔 粗细
f=1
f=2
f=3
f=4
f=5
填充
Y
N
fill=true
fill=false
size 改变
改变颜色
Y
N
输入颜 色
f=1
f=2
f=3
通过 JCheckBox 创建一个按钮,利用按钮监听器决定是否要描绘填 充图形,如果是则将实现赋值 fill=true,否则 fill=false,然后通过 布尔值判断在描绘图形时是 draw 还是 fill,如果布尔值是 ture 时则实 现了图形的填充。 2.2.4 画笔的粗细及画笔的颜色变更
画笔的粗细主要是通过不断地重画填充圆来实现,通过鼠标的拖拽 不断地在画板上进行重画;而粗细则由创建的 JSlider 来调节圆的半径, 如果圆的半径越大则所绘出的曲线越粗,反则越细;画笔的颜色变更主 要通过创建的 JButton 按钮,利用按钮监听器,当按下了按钮,则实现 c=JColorChooser.showDialog(right,"choose",c)语句,从而把初始的 画笔颜色(黑色)改变。 2.2.5 实现鼠标单击和鼠标拖拽进行绘图
在实现绘画的功能,主要通过创建 ButtonGroup 从而把所有的 JRadioButton 都添加进去,从而达到在描绘图形时多选一的选择功能; 利用按钮监听器,利用 Object source=event.getSource()语句当 source==op1 时进行曲线绘画,在实现曲线绘画的功能时,主要利用了 鼠标的点击和鼠标的拖拽,通过鼠标的点击来扑捉第一个坐标点,然后 利用鼠标的拖拽来不断变换第一个点的坐标(利用 sx=x 和 sy=y 语句), 从而将所有点都连接起来,最终实现了在画板上描绘曲线的功能;当 source==op2 时进行直线绘画,在实现直线绘画的功能时,主要利用了 鼠标的点击,鼠标的释放和鼠标的拖拽,通过鼠标的点击来扑捉直线的 第一个坐标点,然后利用鼠标的拖拽选择直线的另一个点,最终通过鼠 标的释放在画板上描绘出直线来;当 source==op3 时进行圆和椭圆绘画, 在实现圆和椭圆绘画的功能时,主要利用了鼠标的点击,鼠标的释放和 鼠标的拖拽,通过鼠标的点击来扑捉圆和椭圆的一个坐标点,然后利用 鼠标的拖拽选择圆和椭圆的大小,最终通过鼠标的释放在画板上描绘出 圆和椭圆来;当 source==op4 时进行矩形绘画,在实现矩形绘画的功能 时,主要利用了鼠标的点击,鼠标的释放和鼠标的拖拽,通过鼠标的点 击来扑捉矩形的一个坐标点,然后利用鼠标的拖拽选择矩形的大小,最 终通过鼠标的释放在画板上描绘出矩形来。 2.2.3 填充功能(其中包括圆的填充,椭圆圆的填充,矩形圆的填充)
画图板java课程设计
画图板java课程设计一、课程目标知识目标:1. 学生能掌握Java语言的基本语法和编程结构。
2. 学生能理解画图板的基本原理,掌握使用Java进行图形界面的设计与实现。
3. 学生能运用Java中的事件处理机制,实现与画图板的交互功能。
技能目标:1. 学生能运用Java编程技能,独立设计并实现一个简单的画图板程序。
2. 学生能通过本课程的学习,提升问题分析能力,运用Java语言解决实际问题。
3. 学生能运用所学的知识,对画图板程序进行调试和优化,提高程序的稳定性。
情感态度价值观目标:1. 学生通过动手实践,培养对编程的兴趣,增强学习Java语言的自信心。
2. 学生在小组合作中,培养团队协作能力,学会共同解决问题。
3. 学生能够认识到编程在现实生活中的应用,理解编程对解决实际问题的重要性。
分析课程性质、学生特点和教学要求:本课程为Java语言编程课程,旨在让学生掌握Java编程的基本技能,培养实际编程能力。
学生处于高年级阶段,具有一定的编程基础,对Java语言有初步了解。
根据教学要求,课程目标具体、可衡量,以便学生和教师能够清晰地了解课程的预期成果。
将目标分解为具体的学习成果:1. 学生能独立完成一个画图板程序的编写,实现基本绘图功能。
2. 学生能对画图板程序进行调试和优化,提高程序性能。
3. 学生在课程学习过程中,积极参与小组讨论,提升团队协作能力。
4. 学生通过课程学习,对编程产生浓厚兴趣,为后续深入学习奠定基础。
二、教学内容本课程教学内容围绕以下三个方面展开:1. Java基本语法和编程结构:包括数据类型、变量、运算符、控制结构、数组等基本概念,确保学生掌握Java编程的基础知识。
2. Java图形用户界面(GUI)设计:涉及Swing库的使用,重点讲解JFrame、JPanel等容器组件以及绘图相关的Graphics类,使学生能够实现画图板界面设计。
3. Java事件处理机制:介绍事件监听器、事件对象等概念,让学生了解并掌握画图板中鼠标、键盘等事件的处理方法。
超级画板实验报告
一、实验背景随着计算机技术的不断发展,图形处理软件在日常生活中得到了广泛应用。
为了提高图形绘制的便捷性和多样性,本实验旨在设计并实现一个功能强大的超级画板程序。
该程序能够满足用户绘制点、线、多边形、椭圆等图形的基本需求,并具备保存、打开自定义图形文件的功能。
二、实验目的1. 掌握Java图形界面编程技术;2. 熟悉面向对象编程思想;3. 培养动手实践能力,提高编程水平。
三、实验内容1. 软件系统分析和设计方案(1)功能需求分析超级画板程序应具备以下功能:1)绘制基本图形:点、直线、多边形、椭圆等;2)编辑图形:移动、缩放、旋转、翻转等;3)保存和打开自定义图形文件;4)设置画板背景颜色、线条颜色、填充颜色等;5)支持鼠标和键盘操作。
(2)结构设计过程超级画板程序界面主要由以下三个部分组成:1)菜单栏:包含文件、编辑、帮助等常见功能菜单,实现打开保存文件等功能;2)工具栏:主要包括画笔、矩形、椭圆、直线、刷子、橡皮、文字、颜色等工具,可完成一些基本操作;3)画板:能够编辑处理图片及文字。
在代码实现上,采用面向对象的思想,将上述组件封装与一个画板类中布局并实现功能。
通过一个窗框类实现画板对象,最后在主类中建立窗框对象。
2. 软件实现和代码编写以下为部分代码及详细注释:```java// 画板类public class DrawingBoard {// 画板面板private JPanel drawingPanel;// 构造函数public DrawingBoard() {// 创建画板面板drawingPanel = new JPanel() {// 重写鼠标事件@Overridepublic void mousePressed(MouseEvent e) {// ...(此处省略具体实现)}// ...(此处省略其他鼠标事件)// 重写键盘事件@Overridepublic void keyPressed(KeyEvent e) {// ...(此处省略具体实现)}// ...(此处省略其他键盘事件)};// 设置画板面板的背景颜色drawingPanel.setBackground(Color.WHITE);// 添加画板面板到窗框add(drawingPanel);}}// 主类public class SuperDrawingBoard {// 主函数public static void main(String[] args) {// 创建窗框对象JFrame frame = new JFrame("超级画板");// 创建画板对象DrawingBoard drawingBoard = new DrawingBoard();// 将画板对象添加到窗框frame.add(drawingBoard);// 设置窗框属性frame.setSize(800, 600);frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); // 显示窗框frame.setVisible(true);}}```四、实验总结通过本次实验,我们成功实现了超级画板程序,具备绘制基本图形、编辑图形、保存和打开自定义图形文件等功能。
java画图课程设计
java画图课程设计一、教学目标本节课旨在让学生掌握Java基本绘图方法,能够使用Java编写简单的图形界面程序。
1.了解Java绘图的基本概念和方法。
2.掌握Java中常用的绘图类和方法。
3.理解图形界面程序的设计原理。
4.能够使用Java编写简单的图形界面程序。
5.能够灵活运用Java绘图方法,实现基本的图形绘制。
6.能够根据需求,设计并实现简单的图形界面程序。
情感态度价值观目标:1.培养学生对计算机编程的兴趣和热情。
2.培养学生解决问题的能力和创新精神。
3.培养学生团队协作和交流的能力。
二、教学内容本节课的教学内容主要包括Java绘图的基本概念和方法,以及图形界面程序的设计原理。
1.Java绘图基本概念和方法。
2.Java中常用的绘图类和方法。
3.图形界面程序的设计原理。
4.实例演示和练习。
三、教学方法本节课采用讲授法、案例分析法和实验法相结合的教学方法。
1.讲授法:用于讲解Java绘图的基本概念和方法,以及图形界面程序的设计原理。
2.案例分析法:通过分析典型案例,让学生理解和掌握Java绘图的方法和技巧。
3.实验法:让学生通过实际操作,动手编写Java程序,巩固所学知识。
四、教学资源1.教材:《Java程序设计》。
2.参考书:《Java绘图教程》。
3.多媒体资料:PPT课件。
4.实验设备:计算机。
五、教学评估本节课的评估方式包括平时表现、作业和考试。
1.平时表现:通过课堂参与、提问和回答问题等方式,评估学生在课堂上的积极性和主动性。
2.作业:布置相关的绘图程序练习,评估学生对Java绘图方法的掌握程度。
3.考试:期末考试中包含Java绘图相关的题目,评估学生对Java绘图的全面理解和应用能力。
六、教学安排本节课的教学安排如下:1.教学进度:按照教材的章节顺序,逐步讲解Java绘图的基本概念和方法。
2.教学时间:每节课45分钟,其中30分钟用于讲授和案例分析,15分钟用于实验和实践。
3.教学地点:计算机实验室,确保学生能够直接进行绘图程序的编写和运行。
java课程设计报告模块设计
java课程设计报告模块设计一、教学目标本课程的教学目标是使学生掌握Java编程语言的基本语法、基本概念和基本编程方法,培养学生运用Java语言解决实际问题的能力。
具体分为以下三个部分:1.知识目标:(1)掌握Java语言的基本语法和编程规范;(2)理解Java语言的基本数据类型、运算符、控制结构、类与对象、继承与多态等概念;(3)熟悉Java语言的常用类库和API,如ng、java.util、java.io等;(4)了解Java语言的面向对象编程思想,掌握类与对象、继承与多态等概念。
2.技能目标:(1)能够使用Java语言编写简单的程序,解决实际问题;(2)掌握Java语言的编程技巧,熟练运用常用类库和API;(3)具备一定的代码阅读和调试能力,能够分析并解决编程中的问题;(4)能够运用面向对象编程思想,设计并实现具有一定复杂度的程序。
3.情感态度价值观目标:(1)培养学生对编程语言的兴趣,激发学生主动学习和探索的热情;(2)培养学生团队合作精神,提高学生沟通与协作能力;(3)培养学生良好的编程习惯,提高学生的代码质量;(4)培养学生具备创新意识,鼓励学生独立思考和解决问题。
二、教学内容根据课程目标,本课程的教学内容主要包括以下几个部分:1.Java语言的基本语法和编程规范;2.Java语言的基本数据类型、运算符、控制结构;3.类与对象、继承与多态等面向对象编程概念;4.Java语言的常用类库和API,如ng、java.util、java.io等;5.编程实践,培养学生解决实际问题的能力。
三、教学方法为了达到课程目标,本课程将采用以下教学方法:1.讲授法:教师讲解Java语言的基本语法、基本概念和基本编程方法,引导学生掌握知识要点;2.案例分析法:通过分析实际案例,让学生了解Java语言的应用场景,提高学生的编程实践能力;3.实验法:安排实验室实践环节,让学生动手编写代码,培养学生的实际编程能力;4.讨论法:学生进行小组讨论,分享学习心得和解决问题的方法,提高学生的沟通和协作能力。
java课程设计及实验报告
java课程设计及实验报告一、教学目标本课程旨在通过Java编程语言的学习,让学生掌握Java编程的基本语法、面向对象编程思想以及常用的数据结构与算法。
通过课程的学习,使学生能够独立完成简单的Java程序,培养学生的编程能力和逻辑思维能力。
具体的教学目标如下:1.知识目标:–掌握Java基本语法和编程规范;–理解面向对象编程的基本概念和方法;–熟悉常用的数据结构(如数组、链表、栈、队列等)和算法(如排序、查找等)。
2.技能目标:–能够使用Java编写简单的程序,解决实际问题;–能够运用面向对象编程思想进行程序设计;–能够运用常用的数据结构与算法解决编程问题。
3.情感态度价值观目标:–培养学生的团队合作意识和沟通能力;–培养学生的创新精神和解决问题的能力;–培养学生的自主学习能力和持续学习的兴趣。
二、教学内容根据教学目标,本课程的教学内容主要包括以下几个方面:1.Java基本语法和编程规范;2.面向对象编程思想,包括类与对象、继承与多态、封装等;3.常用的数据结构与算法,包括数组、链表、栈、队列、排序、查找等;4.Java标准库的使用,包括字符串、数学运算、输入输出等;5.简单的Java编程实例和实战项目。
教学内容的安排和进度如下:•第1-2周:Java基本语法和编程规范;•第3-4周:面向对象编程思想;•第5-6周:常用的数据结构与算法;•第7-8周:Java标准库的使用;•第9-10周:简单的Java编程实例和实战项目。
三、教学方法为了达到教学目标,本课程将采用多种教学方法,包括:1.讲授法:讲解Java基本语法、面向对象编程思想和常用的数据结构与算法;2.案例分析法:分析实际的编程案例,让学生更好地理解和运用Java编程知识;3.实验法:让学生通过动手实践,巩固所学知识和技能;4.讨论法:学生进行小组讨论,培养学生的团队合作意识和沟通能力。
四、教学资源为了支持教学内容和教学方法的实施,丰富学生的学习体验,我们将准备以下教学资源:1.教材:《Java编程思想》;2.参考书:《Java核心技术》、《Head First Java》;3.多媒体资料:教学PPT、视频教程、在线编程练习题等;4.实验设备:计算机、网络环境、编程开发环境(如Eclipse、IntelliJIDEA等)。
java画板菜单栏课程设计
java画板菜单栏课程设计一、课程目标知识目标:1. 学生能理解Java画板菜单栏的基本结构,掌握菜单项、菜单栏和菜单组件的使用方法;2. 学生能运用Java编程语言实现画板菜单栏的添加、删除和修改功能;3. 学生了解Java事件处理机制,并能应用于画板菜单栏的交互操作。
技能目标:1. 学生掌握使用Java编写画板菜单栏程序的基本步骤,具备独立编写和调试代码的能力;2. 学生能够运用所学知识,设计和实现具有个性化功能的画板菜单栏;3. 学生能够通过分析问题,运用合适的算法优化画板菜单栏的交互体验。
情感态度价值观目标:1. 培养学生积极探究、勇于实践的学习态度,激发对Java编程的兴趣;2. 增强学生的团队协作意识,培养在项目开发中分工合作、共同解决问题的能力;3. 培养学生关注用户体验,注重软件界面友好性和功能实用的价值观。
本课程针对高年级学生,结合Java编程语言和图形用户界面设计,旨在提高学生的编程实践能力,培养具备创新精神和实际操作技能的Java程序员。
课程要求学生在掌握基本知识的基础上,注重实际操作和团队协作,实现具有实际应用价值的画板菜单栏项目。
通过本课程的学习,使学生能够将所学知识应用于实际项目中,提高解决实际问题的能力。
二、教学内容1. Java图形用户界面基础:回顾Swing组件、容器和布局管理器的基本概念,重点掌握JFrame、JPanel等常用容器和BorderLayout、FlowLayout等布局管理器的应用。
教材章节:第三章 Java图形用户界面编程。
2. 菜单栏和菜单项:讲解菜单栏(JMenuBar)、菜单(JMenu)和菜单项(JMenuItem)的创建和使用方法,以及菜单栏的布局和外观设置。
教材章节:第三章第四节 菜单、工具栏和对话框。
3. 事件处理机制:复习Java事件处理的基本原理,重点掌握ActionListener 接口和事件适配器(ActionAdapter)的使用。
java课程设计--迷你画板
天津商业大学宝德学院Java程序设计课程报告2013—2014学年第二学期题目迷你画板的开发与研究学号12501116 12501114 学生姓名吴承祖陈磊所在专业电子商务所在班级1201目录1 1 引言.................................................................1.1 设计目的............................................................. 11.2 设计说明............................................................. 22 总体设计............................................................. 2 2.1 功能模块设计......................................................... 32.2 流程图设计........................................................... 43 详细设计............................................................. 5 3.1 迷你画板的布局设计................................................... 5 3.2 工具栏的设计........................................................ 5 3.3 状态栏的的设计...................................................... 53.4 绘图区域的设计...................................................... 64 测试与运行...........................................................7 4.1 程序测试.............................................................74.2 程序运行.............................................................75 总结.................................................................10 参考文献................................................................111 引言本项目设计开发了简易的迷你画板,主要的开发工具是JDK(JAVA DEVELOP KIT)已经JAVA的IDE(INTERGRATED DEVELOPMENT ENVIRONMENT) –ECLIPSE。
课程设计java画板
课程设计java画板一、教学目标本课程的目标是让学生掌握Java编程基础,能够使用Java编写简单的图形程序。
通过本课程的学习,学生将能够理解Java编程的基本概念,掌握基本的图形绘制方法,培养编程思维和解决问题的能力。
具体来说,知识目标包括:1.理解Java编程的基本概念,如变量、数据类型、运算符、控制结构等。
2.掌握Java图形编程的基本概念,如图形类、绘图方法、事件处理等。
技能目标包括:1.能够使用Java编写简单的图形程序,如画线、画圆、画矩形等。
2.能够使用Java进行基本的输入输出操作,如键盘输入、屏幕输出等。
情感态度价值观目标包括:1.培养学生的编程思维,提高他们解决问题的能力。
2.培养学生的创新意识,让他们体验到编程的乐趣。
二、教学内容本课程的教学内容主要包括Java编程基础和Java图形编程两部分。
1.Java编程基础:–变量和数据类型–运算符和控制结构–函数和方法–输入输出操作2.Java图形编程:–图形类和绘图方法–事件处理和鼠标交互–示例程序:画线、画圆、画矩形等3.第一周:Java编程基础–变量和数据类型–运算符和控制结构4.第二周:Java编程基础(续)–函数和方法–输入输出操作5.第三周:Java图形编程–图形类和绘图方法–事件处理和鼠标交互6.第四周:示例程序和练习–画线、画圆、画矩形等示例程序–学生练习和反馈三、教学方法本课程将采用讲授法、案例分析法和实验法等多种教学方法相结合的方式进行教学。
1.讲授法:教师通过讲解和演示,向学生传授Java编程基础知识和图形编程技巧。
2.案例分析法:教师通过分析典型案例,引导学生思考和解决问题,培养学生的编程思维。
3.实验法:学生通过动手编写代码和运行程序,巩固所学知识,提高编程能力。
四、教学资源本课程的教学资源包括教材、参考书、多媒体资料和实验设备。
1.教材:Java编程基础和Java图形编程相关的教材,用于学生学习和参考。
JAVA画图板程序实验报告(附完整代码)分析
画板程序一、软件系统分析和设计方案1、功能需求分析设计类似于Windows画板的程序,程序可以通过功能菜单(或工具条)进行功能选择操作,在画板中可以用鼠标操作绘制不同颜色的点,直线,多边形和椭圆,可以保存和打开自定义的图形文件。
2、结构设计过程经过对需求的分析,我们设计的画图板界面主要包括菜单栏、工具栏、画板三个部分。
菜单栏包含文件、编辑、帮助等常见功能菜单,实现打开保存文件等功能;工具栏主要包括画笔、矩形、椭圆、直线、刷子、橡皮、文字、颜色等工具,可完成一些基本操作;画板能够编辑处理图片及文字。
而代码实现上采用面向对象的思想,将上述组件封装与一个画板类中布局并实现功能;通过一个窗框类实现画板对象;最后在主类中建立窗框对象。
思路如下图:二、软件实现和代码编写具体代码及详细注释如下:import java.awt.*;import java.awt.event.*;import java.awt.geom.*;import javax.swing.*;import javax.swing.UIManager.*;import java.io.*;import java.util.Vector;//主类建立窗框public class DrawPad {public static void main(String[] args) {try {// 优化UI效果for (LookAndFeelInfo info : UIManager.getInstalledLookAndFeels()) { if ("Nimbus".equals(info.getName())) {UIManager.setLookAndFeel(info.getClassName());break;}}} catch (Exception e) {System.out.println(e);}new DrawFrame();}}// 添加窗口和画板组件class DrawFrame extends JFrame {public DrawFrame() {DrawPanel panel = new DrawPanel();add(panel);setTitle("简单JAVA画板");setBounds(100, 100, 800, 600);setVisible(true);setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);}}// 定义绘画点的基本属性class position implements Serializable {int x;int y;int type;String s;Color color;}// 定义画板组件class DrawPanel extends JPanel implements ActionListener, MouseListener, MouseMotionListener {JMenuBar mb;// 菜单栏JMenu menu1, menu2, menu3;JMenuItem i1, i2, i3, i4;JPanel jp1; // 工具栏public JButton anj0, anj1, anj2, anj3, anj4, anj5, anj6, anj7, anj8, anj9,anj10;JLabel l1, lcolor;Vector<position> thedraw = new Vector<position>(); // 保存画图轨迹的数组int style = 0; // 保存画图类型,默认为画笔int x1 = 0;// 保存点的坐标int x2 = 0;int y1 = 0;int y2 = 0;String input = "";// 默认输入文字内容Color linecolor = Color.BLACK; // 默认线的颜色public DrawPanel() {setBackground(Color.WHITE);setLayout(new BorderLayout());setCursor(Cursor.getPredefinedCursor(Cursor.CROSSHAIR_CURSOR));// 上部菜单栏mb = new JMenuBar();mb.setCursor(Cursor.getPredefinedCursor(Cursor.DEFAULT_CURSOR));add(mb, BorderLayout.NORTH);// 加入菜单栏的组件menu1 = new JMenu(" 文件");menu2 = new JMenu(" 编辑");menu3 = new JMenu(" 帮助");i1 = new JMenuItem("打开", new ImageIcon("img/open.png"));i2 = new JMenuItem("保存", new ImageIcon("img/save.png"));i3 = new JMenuItem("清空", new ImageIcon("img/clear.png"));i4 = new JMenuItem("关于简单JAVA画板", new ImageIcon( "img/about.png"));menu1.add(i1);menu1.addSeparator();menu1.add(i2);menu2.add(i3);menu3.add(i4);mb.add(menu1);mb.add(menu2);mb.add(menu3);add(mb, BorderLayout.NORTH);// 侧边工具栏jp1 = new JPanel();jp1.setBackground(Color.LIGHT_GRAY);jp1.setLayout(new BoxLayout(jp1, BoxLayout.Y_AXIS));jp1.setCursor(Cursor.getPredefinedCursor(Cursor.DEFAULT_CURSOR));add(jp1, BorderLayout.WEST);// 加入工具栏的组件anj0 = new JButton("画笔", new ImageIcon("img/pen.png"));anj1 = new JButton("刷子", new ImageIcon("img/brush.png"));anj2 = new JButton("橡皮", new ImageIcon("img/erease.png"));anj3 = new JButton("文字", new ImageIcon("img/word.png"));anj4 = new JButton("直线", new ImageIcon("img/sline.png"));anj5 = new JButton("矩形", new ImageIcon("img/rec.png"));anj6 = new JButton("圆矩", new ImageIcon("img/frec.png"));anj7 = new JButton("椭圆", new ImageIcon("img/eli.png"));anj10 = new JButton("");lcolor = new JLabel("■");// 会变色的方块l1 = new JLabel(" 颜色");anj10.add(lcolor);anj10.add(l1);jp1.add(anj0);jp1.add(anj1);jp1.add(anj2);jp1.add(anj3);jp1.add(anj4);jp1.add(anj5);jp1.add(anj6);jp1.add(anj7);jp1.add(anj10);// 事件处理i1.addActionListener(this);i2.addActionListener(this);i3.addActionListener(this);i4.addActionListener(this);anj0.addActionListener(this);anj1.addActionListener(this);anj2.addActionListener(this);anj3.addActionListener(this);anj4.addActionListener(this);anj5.addActionListener(this);anj6.addActionListener(this);anj7.addActionListener(this);anj10.addActionListener(this);addMouseListener(this);addMouseMotionListener(this);}// 记录鼠标选择的功能public void actionPerformed(ActionEvent e) {if (e.getSource() == anj0)style = 0;else if (e.getSource() == anj1)style = 1;else if (e.getSource() == anj2)style = 2;else if (e.getSource() == anj3) {style = 3;input = JOptionPane.showInputDialog("输入文字后在画板上点击放置");} else if (e.getSource() == anj4)style = 4;else if (e.getSource() == anj5)style = 5;else if (e.getSource() == anj6)style = 6;else if (e.getSource() == anj7)style = 7;else if (e.getSource() == anj10) {linecolor = JColorChooser.showDialog(null, "请选择颜色", Color.BLACK);lcolor.setForeground(linecolor);} else if (e.getActionCommand().equals("关于简单JAVA画板")) {JOptionPane.showMessageDialog(null,"这是一个简单的JAVA画板。
JAVA课程设计(画图板软件开发和设计)
功能测试:确保所有功能正常工作 性能测试:评估系统性能,如响应时间、吞吐量等 兼容性测试:确保在不同操作系统和浏览器上正常运行 用户体验测试:评估用户界面设计、易用性等
硬件要求:CPU、内存、硬盘等 软件要求:JDK、Tomcat、数据库等 部署步骤:安装JDK、Tomcat、数据库等,配置环境变量,部署项目 运行步骤:启动Tomcat,访问项目地址,进行测试和调试
优化网络 传输:减 少网络延 迟,提高 数据传输 速度
优化数据 库访问: 减少数据 库查询次 数,提高 查询效率
优化系统 日志:减 少日志记 录,提高 系统运行 效率
优化系统 安全:加 强系统安 全防护, 提高系统 安全性能
项目成果:成功开发出画图板 软件,实现了基本的绘图功能
项目目标:开发一个画图板 软件,实现基本的绘图功能
数据库索引:用户ID、画图板ID等
数据库备份和恢复策略:定期备份,异地 存储,灾难恢复等
数据库安全:用户权限管理,数据加密, 访问控制等
画笔算法:实现画笔的绘制和移动
图形选择算法:实现图形的选择和绘制
橡皮擦算法:实现橡皮擦的擦除功能
颜色选择算法:实现颜色的选择和切换
撤销和重做算法:实现撤销和重做操作
项目经验:在开发过程中,学 习了JAVA编程、图形绘制、用
户界面设计等知识
项目展望:未来可以继续优化 画图板软件,增加更多功能,
提高用户体验
功能实现:部分功 能实现不够完善, 需要进一步优化
用户体验:界面 设计不够友好, 需要改进
性能优化:程序 运行速度较慢, 需要优化
团队协作:团队成 员之间沟通不够顺 畅,需要加强团队 协作能力
画图板功 能:支持 绘制各种 图形,如 直线、曲 线、矩形、 圆形等
JAVA简单画板程序设计实验报告
J A V A简单画板程序设计实验报告As a person, we must have independent thoughts and personality.JAVA期末画板实验报告课程题目:运用JAVA语言编写一个画板程序,这个画板要有画图,特殊图形绘制,颜色改变,画笔大小改变等功能。
设计思想:1.进行界面设计2.进行算法实现3.运行调试4.总结问题设计过程:A.界面设计B.新建一个Jframe容器,然后定义一个panel( Panel convas2),convas2是工具栏。
用borderlayout布置容器的边框布局,将工具栏放在NORTH部分。
完成界面设计。
add(canvas2,;Panel canvas2 = new Panel();添加工具按键Panel canvas2 = new Panel();Button btn1 = new Button("直线");Button btn2 = new Button("椭圆");Button btn3 = new Button("矩形");Button btn4 = new Button("清除");Button btn5 = new Button("画笔");Button btn6 = new Button("橡皮");Choice choice = new Choice();Choice choice1 = new Choice();(choice);(choice1);(btn1);(btn2);(btn3);(btn4);(btn5);(btn6);在工具表中,有两个下拉菜单,分别收录画笔的大小和颜色。
1.画笔的大小:("1");("3");("5");("7");("9");2.画笔颜色("黑色");("蓝色");("红色");("黄色");("绿色");3展示画板C.算法实现运用画板,首先要对工具栏按键和鼠标进行监听,然后对监听进行响应。
Java画图板课程设计报告(DOC)
目录1 引言 (1)1.1课程设计选题 (1)1.2课程设计的目的 (1)1.3本选题的设计背景 (1)2 需求分析 (1)2.1 功能需求 (1)2.2 软件开发运行环境 (1)3 总体设计 (2)3.1 软件结构设计 (2)3.1.1 结构设计 (2)3.2软件功能模块及主要类设计 (2)3.2.1功能描述 (2)3.2.2总体结构图 (3)3.2.3主要类设计 (3)4 详细设计与实现 (4)4.1 主界面 (4)4.1.1主界面功能设计 (4)4.1.2主界面设计 (4)4.1.3主界面主要代码 (5)4.2 菜单栏 (6)4.2.1菜单栏功能设计 (6)4.2.2菜单栏界面设计 (6)4.2.3菜单栏主要代码 (9)4.3 工具栏 (10)4.3.1工具栏功能设计 (10)4.3.2工具栏界面设计 (10)4.3.3工具栏主要代码 (10)4.4 画图区 (11)4.4.1画图区功能设计 (11)4.4.2画图区界面设计 (12)4.4.3画图区主要代码 (12)4.5 状态栏 (12)4.5.1状态栏功能设计 (12)4.5.2状态栏设计 (12)4.5.3状态栏代码 (12)5 小结和展望 (13)参考文献 (14)附录 (15)使用说明书 (15)源程序清单 (15)1引言1.1课程设计选题《画图板软件开发和设计》1.2课程设计的目的巩固和加深以Java 语言为基础的面向对象编程技术理论知识的理解,提高实际动手编程能力的培养,掌握以Java为核心的应用软件开发方案,达到能独立阅读、编制和调试一定规模的Java 程序的水平。
1.3本选题的设计背景日常生活、学习中我们经常需要画图,简单的画图我们可以手工画图,但往往还是不能满足需求。
因此,借助计算机准确而快速的画图就十分有必要了。
好的画图工具能够很好的完成日常生活中的各种画图工作。
学习了Java语言后设计开发一个画图软件是对Java语言学习的巩固以及提高。
java面向对象课程设计报告画图板毕业设计(论文)word格式[管理资料]
《面向对象程序设计课程设计》指导书课程设计名称:面向对象程序设计课程设计指导老师:牛志毅课程设计周(时)数:2周指导方式:集体辅导与个别辅导相结合课程设计适用专业:信息与计算机科学课程设计教材及主要参考资料:《Java程序设计与案例》刘宝林主编,高等教育出版社服务课程名称:面向对象程序设计一、课程设计教学目的及基本要求通过本课程设计,使学生了解面向对象程序的开发思想、方法和步骤,掌握开发工具的使用,提高综合运用所学的理论知识和方法独立分析和解决问题的能力,进一步提高其开发应用程序的能力。
要求明确本次课程设计所要用到的技术点并到网上搜索以及查阅相关的书籍来搜集资料。
通过编写一个基于JAVA的应用系统综合实例,来掌握Java语言编程技巧。
并学会编制结构清晰、风格良好的、数据结构适当的Java语言程序,从而具备解决综合性实际问题的能力。
二、设计题目及要求(二选一)⑴设计一个图书信息管理系统①图书信息包括图书编号、书名、作者、出版社、出版日期、图书简介及图书类别等。
②本系统功能描述:图书信息录入功能;图书信息浏览功能;查询功能(至少一种查询方式);图书信息修改功能;及其它你认为必要的功能。
⑵设计一个画图软件①用户界面友好;②能绘制基本形状的图形;③可设置图形的颜色、线条的粗细和填充等属性;④可将画好的图保存至文件,并能从文件中读取。
三、设计报告的要求设计结束后要写出课程设计报告,以作为整个课程设计评分的书面依据和存档材料。
设计报告以规定格式的电子文档书写、打印并装订,排版及图、表要清楚、工整。
内容及要求如下:封面:题目、班级、姓名、学号、指导教师和完成日期。
正文包括以下7个内容:①课题说明以无歧义的陈述说明程序设计的任务。
②程序设计思路简要说明程序设计的思路。
③程序源代码给出源代码及注释。
④程序测试给出程序主要运行界面截图。
⑤设计总结经验和体会等。
⑥参考文献列出参考的相关资料和书籍。
五、课程设计考核方法及成绩评定课程设计结束时,要求学生提交课程设计报告(附源程序)及可运行的软件系统。
Java画图板程序设计分析报告
Java画图板程序设计报告————————————————————————————————作者:————————————————————————————————日期:西安科技大学Java语言课程设计报告题目:画图板应用程序开发班级:学号:姓名:2010年 12 月目录1 设计题目及具体要求 (3)2 总体设计 (6)3 详细设计与实现 (4)4 系统测试 (11)5 设计小结 (31)参考文献1、设计题目及具体要求1.1 题目需求1. 设计题目:小画图板的开发。
2. 重点分析本软件的重难点为主窗体的设计、菜单栏和工具栏的设计、事件响应的处理、画图的基本功能的实现。
3. 实现功能1.新建一个空白图形文件:用于绘制新的图形。
2.打开或保存一个图形文件,便于对图形文件的管理。
3.绘制一些基本的图形组件:直线,矩形,实心矩形,椭圆,实心椭圆,圆,实心圆,圆角矩形,实心圆角矩形等。
4.用鼠标在绘图板上单击拖动进行随笔花。
5.橡皮擦:可以将已绘制的图形擦掉。
6.添加文字:可以在绘图区域内添加文字。
7.选择文字的字体:通过一个下拉式的选择条,可以选中所需要的字体。
本程序中包括:宋体,隶书,华文彩云,仿宋-GB2312,华文行楷,Times New Roman,Serif,Monospaced,SonsSerif,Garamond。
当然,在下面的程序分析中可以看到,由于设置了字体选择数组,使得可以随意添加系统支持的任何字体。
大大方便和简化了程序设计。
8.选择文字的字体风格:通过两个复选框按钮,可以选择需要的字体风格,包括:粗体,斜体,用同时选中两者,只选择其中一种或两者都不选中3种选择方式。
9.设置画笔的颜色:可以选择当前绘制图形的画笔颜色,让图形更加丰富多彩,生动活泼。
10. 设置画笔的粗细:该选项在作用于基本图形组件和文字时,它的效果是不同的。
当作用于绘制图形组建时,它的作用是改变画笔绘制线条的粗细;当作用于文字时,它的作用是改变文字的大小。
java涂鸦板课程设计
java涂鸦板课程设计一、课程目标知识目标:1. 学生能掌握Java基本语法,如变量声明、数据类型、运算符和表达式。
2. 学生能理解并运用面向对象编程的基本概念,包括类、对象、构造方法和继承。
3. 学生能掌握Java中的图形用户界面(GUI)编程,使用Swing组件设计图形界面。
技能目标:1. 学生能够独立编写简单的Java程序,实现基本涂鸦板功能,如绘图、清除、选择画笔颜色和粗细。
2. 学生通过实际操作,培养解决问题的能力,学会调试和修改程序中的错误。
3. 学生能够运用所学知识,进行创新设计,开发具有个性化的涂鸦板功能。
情感态度价值观目标:1. 学生培养对编程的兴趣,认识到编程在现实生活中的应用,激发学习积极性。
2. 学生在团队协作中学会分享和交流,培养合作意识和团队精神。
3. 学生通过课程学习,认识到编程可以培养逻辑思维和创新能力,提高自身综合素质。
课程性质:本课程为信息技术课程,结合Java编程语言,旨在培养学生的编程兴趣和实际操作能力。
学生特点:本课程针对初中生,学生对新鲜事物充满好奇,动手能力强,但注意力集中时间有限,需要激发学习兴趣。
教学要求:注重实践操作,结合实际案例进行教学,引导学生主动探索,培养编程思维和解决问题的能力。
通过分解课程目标,确保学生能够掌握Java编程的基本知识和技能,实现教学目标。
二、教学内容1. Java基本语法:- 变量声明与赋值- 数据类型与类型转换- 运算符与表达式- 控制结构(顺序、选择、循环)2. 面向对象编程基础:- 类的定义与使用- 对象的创建与引用- 构造方法与封装- 继承与多态3. Java图形用户界面(GUI)编程:- Swing组件概述- 常用容器组件(JFrame、JPanel等)- 常用绘图组件(JButton、JColorChooser等)- 事件处理机制4. 涂鸦板功能实现:- 设计涂鸦板界面- 绘图功能实现(画笔、线条、矩形等)- 清除与撤销功能实现- 画笔颜色、粗细选择功能实现5. 实践与创新:- 编程实现基本涂鸦板功能- 调试与优化程序- 拓展功能(如保存、加载、分享作品等)- 个性化设计(自定义画笔、背景等)教学内容依据课程目标和教材章节进行组织,确保教学内容的科学性和系统性。
java课程设计简单的画画板
java课程设计简单的画画板一、教学目标本章节的教学目标旨在让学生掌握Java编程基础,能够使用Java语言实现一个简单的画画板应用程序。
具体目标如下:1.知识目标:–了解Java编程语言的基本语法和结构;–掌握面向对象编程的基本概念,如类、对象、封装、继承和多态;–学习Java标准库中常用的数据结构和API;–理解图形用户界面(GUI)编程的基本原理。
2.技能目标:–能够使用Java编程语言编写简单的程序;–能够运用面向对象编程思想设计和实现程序;–能够利用Java标准库中的API解决实际问题;–能够使用Java GUI编程工具创建用户界面。
3.情感态度价值观目标:–培养学生的编程思维和解决问题的能力;–激发学生对计算机科学和编程的兴趣;–培养学生的团队合作和沟通能力,通过小组合作完成项目。
二、教学内容本章节的教学内容将按照以下大纲进行和安排:1.Java编程基础:介绍Java编程语言的基本语法和结构,包括变量、数据类型、运算符、控制语句等。
2.面向对象编程:讲解面向对象编程的基本概念,如类、对象、封装、继承和多态,并通过实例进行演示和练习。
3.Java标准库:学习Java标准库中常用的数据结构和API,如字符串、数组、集合、数学函数等。
4.图形用户界面(GUI)编程:介绍Java GUI编程的基本原理,学习使用Swing和AWT库创建用户界面,包括按钮、文本框、画布等组件。
5.项目实践:通过小组合作,设计和实现一个简单的画画板应用程序,让学生综合运用所学知识解决实际问题。
三、教学方法为了激发学生的学习兴趣和主动性,本章节将采用多种教学方法:1.讲授法:教师讲解Java编程语言的基本语法和结构,面向对象编程的概念,以及图形用户界面(GUI)编程的原理。
2.案例分析法:通过分析实际案例,让学生理解面向对象编程的思想和应用,以及如何使用Java标准库中的API解决实际问题。
3.实验法:学生通过动手实践,编写Java程序,创建用户界面,并完成项目实践,以巩固所学的知识和技能。
java画板课程设计
Java画板课程设计是一个很好的实践项目,可以帮助学生深入了解Java编程语言以及图形用户界面(GUI)设计。
下面是一个简单的Java画板课程设计的步骤和要点:一、设计界面首先,你需要设计一个简单的用户界面,包括画布、画笔、颜色选择器等控件。
可以使用Java的Swing库来创建GUI。
二、实现画布功能1.创建一个画布类,继承自JPanel。
2.在画布类中重写paintComponent()方法,用于绘制图形。
3.实现鼠标事件监听器,包括鼠标按下、鼠标移动和鼠标释放事件。
4.在鼠标按下事件中记录鼠标位置,在鼠标移动事件中绘制线条。
5.在鼠标释放事件中结束绘制。
三、实现画笔功能1.创建一个画笔类,包含颜色、线宽等属性。
2.在画笔类中实现draw()方法,用于绘制线条。
3.将画笔对象传递给画布类,以便在paintComponent()方法中使用。
四、实现颜色选择器功能1.创建一个颜色选择器类,继承自JComboBox。
2.在颜色选择器类中添加各种颜色选项。
3.将颜色选择器对象传递给画布类,以便在paintComponent()方法中使用。
五、整合功能1.将画布、画笔和颜色选择器整合到一个窗口中,可以使用JFrame来创建窗口。
2.设置窗口的关闭操作,以便程序退出时释放资源。
3.运行程序,测试各项功能是否正常工作。
以上是一个简单的Java画板课程设计的步骤和要点,你可以根据需要进行扩展和改进。
例如,可以添加更多的绘图工具、支持不同的绘图模式等。
通过这个项目,你可以学习到Java编程语言的基础知识以及GUI 设计技巧,提高自己的编程能力。
java图画板课程设计
java图画板课程设计一、教学目标本课程旨在通过Java编程语言实现一个简单的图画板应用程序。
通过本课程的学习,学生将掌握以下知识目标:1.理解Java编程语言的基本语法和结构。
2.掌握图形用户界面(GUI)的设计和实现方法。
3.熟悉Java绘图API的使用。
在技能目标方面,学生将能够:1.使用Java编写简单的图形用户界面应用程序。
2.实现图画板的基本功能,如绘图、擦除、保存和加载等。
在情感态度价值观目标方面,学生将培养以下能力:1.培养对计算机科学和编程的兴趣和热情。
2.培养解决问题的能力和创新思维。
3.培养团队合作和交流分享的意愿。
二、教学内容本课程的教学内容将围绕Java编程语言和图形用户界面设计展开。
具体的教学大纲如下:1.Java编程基础:介绍Java编程语言的基本语法和结构,包括变量、数据类型、运算符、控制语句等。
2.GUI设计:介绍图形用户界面设计的基本概念和原理,包括窗口、按钮、文本框等组件的使用和布局管理。
3.绘图API:介绍Java绘图API的使用,包括绘图的基本方法、颜色和线型的设置等。
4.实现图画板功能:通过实践项目,引导学生掌握绘图板的基本功能,如绘图、擦除、保存和加载等。
三、教学方法为了激发学生的学习兴趣和主动性,本课程将采用多种教学方法。
包括:1.讲授法:教师讲解Java编程语言的基本语法和结构,GUI设计的基本概念和原理,以及绘图API的使用方法。
2.案例分析法:通过分析具体的案例,让学生理解图画板应用程序的设计和实现过程。
3.实验法:学生通过动手实践,编写Java代码实现图画板的基本功能。
四、教学资源为了支持教学内容和教学方法的实施,丰富学生的学习体验,我们将选择和准备以下教学资源:1.教材:选择一本适合学生水平的Java编程教材,用于学习和参考。
2.多媒体资料:提供相关的视频教程和演示文稿,帮助学生更好地理解和掌握Java编程和GUI设计的相关知识。
3.实验设备:提供计算机和编程环境,让学生能够进行实际编程实践。
java课程设计画板
java课程设计画板一、教学目标本课程旨在通过Java编程语言实现一个简单的画板应用程序,让学生掌握以下知识目标:1.理解Java编程语言的基本语法和结构。
2.掌握图形用户界面(GUI)的设计和实现。
3.熟悉Java绘图API的使用。
4.能够使用Java编写简单的应用程序。
5.能够设计和实现具有基本功能的画板应用程序。
6.能够运用Java绘图API进行基本的图形绘制。
情感态度价值观目标:1.培养学生的编程兴趣,提高学生对计算机科学的热爱。
2.培养学生解决问题的能力,提高学生的创新意识。
3.培养学生团队合作的精神,提高学生的沟通协作能力。
二、教学内容本课程的教学内容主要包括以下几个部分:1.Java编程语言基本语法和结构。
2.图形用户界面(GUI)的设计和实现。
3.Java绘图API的使用。
具体的教学大纲安排如下:第1-2课时:Java编程语言基本语法和结构。
第3-4课时:图形用户界面(GUI)的设计和实现。
第5-6课时:Java绘图API的使用。
三、教学方法为了达到本课程的教学目标,将采用以下教学方法:1.讲授法:用于讲解Java编程语言基本语法和结构,以及图形用户界面(GUI)的设计和实现。
2.案例分析法:通过分析实际案例,让学生了解和掌握Java绘图API的使用。
3.实验法:安排学生在实验室进行实际操作,锻炼学生的编程能力和实践能力。
四、教学资源为了支持本课程的教学内容和教学方法的实施,将准备以下教学资源:1.教材:Java编程基础,用于引导学生学习Java编程语言的基本语法和结构。
2.多媒体资料:包括PPT、教学视频等,用于辅助讲解和演示。
3.实验设备:计算机、网络等,用于学生实际操作和实验。
4.在线编程平台:如LeetCode、牛客网等,用于学生练习和巩固所学知识。
五、教学评估为了全面、客观、公正地评估学生的学习成果,将采取以下评估方式:1.平时表现:包括课堂参与度、提问回答、小组讨论等,占总评的20%。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
画板一、需求分析平时生活中,我们会需要处理一些基本的图像,也有可能需要花一些简单的图像,平时所使用的图形处理工具有PhotoShop、Windows 画图工具等,其中PhotoShop 是一款非常强大的图形处理工具,Windows 画图工具则是一款较为简单的画图工具,功能较为简单,用Windows画图工具,是一种比较简单与具有代表性的画图工具,虽然功能不够强大,但具有大多图片处理程序所必需的基本功能:铅笔画图、各种数学函数图形、填色、取色、橡皮擦等等。
这次试验中我做的就是一个仿照windows画板的程序。
功能:1.利用graphics 类来向界面上画上相应内容2.能够画出直线,矩形,多边形,椭圆形,圆矩形等3.能够实现橡皮,刷子,喷枪等工具。
4.能够实验颜色的设置5.能够保存图片和打开图片(当保存名一致时需提示)6.界面尽量合理,可以仿照windows画板界面。
二、概要设计流程图画板软件类图1.工具接口Tool:从图中可以看到,工具接口Tool 定义了鼠标动作的四个方法,分别是拖动mouseDrapped()、移动mouseMoved()、松开mouseReleased()、按下mousePressed()、点击mouseClicked()五个动作,并用String 类型的常量属性来定义工具的类型。
这个接口只有一个实现类AbstractTool,而每个工具类都是去扩展AbstractTool 类,在图中表现为Tool1、Tool2…….ToolN。
2.Tool的实现类AbstractToolAbstractTool 是Tool 的实现类,也是一个抽像类,所以并不能被创建,只能被继承。
此类实现Tool中定义的所有方法,并扩展了其它方法,让其子类继承或者重写。
该类中为其他的工具类提供了大部分的实现,那么它的子类就可以不必再做重复的实现,只关心与本类相关的逻辑,3.AbstractTool的子类AbstractTool 一共有ArrowTool(箭头)、PencilTool(铅笔)、BrushTool(刷子)、EraserTool(橡皮擦)、LineTool (直线)、RectTool (矩形)、PolygonTool (多边形)、RoundTool (椭圆形)、RoundRectTool(圆矩形)、AtomizerTool (喷墨)、ColorPickedTool(颜色选择)11 个子类,4. 界面类ImageFrame这个画图工具的界面的主要放在这个类中实现5. 业务逻辑类ImageService除鼠标的画图功能外(画图功能由Tool 的实现类完成),初始化画板、图片的新建打开与保存、各种面板的显示与隐藏、颜色的编辑、整个界面的刷新、菜单等业务逻辑都放在这个类中实现,对象,它并没有保存一些状态属性。
6 .文件选择类ImageFileChooserImageFileChooser 类继承了JFleChooser 类,JFleChooser 是Java 提供的一个简单的文件选择机制,我们这里扩展这个类,是为了增加我们自己的文件过滤器。
三、运行环境、开发语言Window xp 和elipseJava语言四、详细设计1 程序清单(二级标题为四号,黑体,三级标题为小四号,黑体)ToolFactory.java 得到某个具体的工具2 主要代码2.1主界面实现:设置JFrame 窗口的标题,接下来初始化画图区域,初始化为白色,然后再获取PENCIL_TOOL(铅笔)类型的Tool,创建各种鼠标监听器,并在监听的执行方法中调用Tool 的相应方法,最后获取左边工具栏面板、下面菜单栏面板、菜单,并把这些面板与画图获取加到JFrame 中,该功能截图如图1。
具体代码如下图1 主界面public void init() {// 设置标题this.setTitle("未命名- 画图");// 初始化画图service.initDrawSpace(this);// 设置标题获取正在使用的工具tool = ToolFactory.getToolInstance(this, PENCIL_TOOL);// 创建鼠标运动监听器MouseMotionListener motionListener = new MouseMotionAdapter() {public void mouseDragged(MouseEvent e) {tool.mouseDragged(e);}public void mouseMoved(MouseEvent e) {tool.mouseMoved(e);}};MouseListener mouseListener = new MouseAdapter() {// 松开鼠标public void mouseReleased(MouseEvent e) {tool.mouseReleased(e);}// 按下鼠标public void mousePressed(MouseEvent e) {tool.mousePressed(e);}// 点击鼠标public void mouseClicked(MouseEvent e) {tool.mouseClicked(e);}};//为窗体注册监听器drawSpace.addMouseMotionListener(motionListener);drawSpace.addMouseListener(mouseListener);createMenuBar();// 以drawSpace为viewport去创建一个JScrollPanescroll = new JScrollPane(drawSpace);// 设置viewportImageService.setViewport(scroll, drawSpace, bufferedImage.getWidth(),bufferedImage.getHeight());// 将panel加到本Frame上面this.add(scroll, BorderLayout.CENTER);this.add(toolPanel, BorderLayout.WEST);this.add(colorPanel, BorderLayout.SOUTH);}2.2加入菜单把文件、查看、颜色、帮助四个菜单文字放在一个String 类型的数组menuArr 里面,并迭代这个数组去创建一个JMenu,JMenu 就是指菜单。
同样,把他们下面的各个菜单项文字也放在一个String 类型的二维数组里面,去迭代创建每个JmenuItem(菜单项),每创建完一个,就为它加上一个动作监听器,去监听这个菜单项是否被点击。
该功能截图如图2。
具体代码如下图2 加入菜单后的界面public void createMenuBar() {// 创建一个JMenuBar放置菜单JMenuBar menuBar = new JMenuBar();// 菜单文字数组,与下面的menuItemArr一一对应String[] menuArr = { "文件(F)", "查看(V)", "颜色(C)", "帮助(H)"};// 菜单项文字数组String[][] menuItemArr = { { "新建(N)", "打开(O)", "保存(S)", "-", "退出(X)" },{ "工具箱(T)", "颜料盒(C)" }, { "编辑颜色" }, { "帮助主题", "关于" } };// 遍历menuArr与menuItemArr去创建菜单for (int i = 0; i < menuArr.length; i++) {// 新建一个JMenu菜单JMenu menu = new JMenu(menuArr[i]);for (int j = 0; j < menuItemArr[i].length; j++) {// 如果menuItemArr[i][j]等于"-"if (menuItemArr[i][j].equals("-")) {// 设置菜单分隔menu.addSeparator();} else {// 新建一个JMenuItem菜单项JMenuItem menuItem = newJMenuItem(menuItemArr[i][j]);menuItem.addActionListener(menuListener);// 把菜单项加到JMenu菜单里面menu.add(menuItem);}}// 把菜单加到JMenuBar上menuBar.add(menu);}// 设置JMenubarthis.setJMenuBar(menuBar);}2.3创建画图工具栏画图工具栏,这里实现的工具有铅笔、刷子、拾色器、喷枪、橡皮擦、直线、多边形、矩形、椭圆,圆矩形,这里,每个工具我们用一个JButton 去代表它,使用JButton 的J Button(AbstractActoinaction)构造器去创建JButton,用这个构造器创建JButton,可以在AbstractAction 中加入按键的图标,以图形的方式创建按钮,另外,我们会有一个AbstractAction 的实现类。
该功能截图如图3。
具体代码如下图3 加入画图工具栏public JPanel createToolPanel() {// 创建一个JPanelJPanel panel = new JPanel();// 创建一个标题为"工具"的工具栏JToolBar toolBar = new JToolBar("工具");// 设置为垂直排列toolBar.setOrientation(toolBar.VERTICAL);// 设置为可以拖动toolBar.setFloatable(true);// 设置与边界的距离toolBar.setMargin(new Insets(2, 2, 2, 2));// 设置布局方式toolBar.setLayout(new GridLayout(5, 2, 2, 2));// 工具数组String[] toolarr = { PENCIL_TOOL, BRUSH_TOOL, COLORPICKED_TOOL,ATOMIZER_TOOL, ERASER_TOOL, LINE_TOOL, POLYGON_TOOL, RECT_TOOL,ROUND_TOOL, ROUNDRECT_TOOL };for (int i = 0; i < toolarr.length; i++) {ImageAction action = new ImageAction(new ImageIcon("img/"+ toolarr[i] + ".jpg"), toolarr[i], this);// 以图标创建一个新的buttonJButton button = new JButton(action);// 把button加到工具栏中toolBar.add(button);}panel.add(toolBar);// 返回return panel;}2.4 创建颜色选择面板这是一个简单的颜色选择面板,只有最基本的几种颜色选择(BLACK、BLUE、CYAN、GRAY、GREEN、LIGHT_GRAY、MAGENTA、ORANGE、PINK、RED、WHITE、YELLOW),创建过程与创建工具栏的过程类似,用设置了颜色的按钮去代表这些颜色,首先创建一个JToolBar 去放置这些颜色按钮,并设置这个JToolBar 的布局方式、标题、是否可以拖动等属性,最后去遍历保存这些颜色类型的数组,每次都新创建一个ImageAction,并以这个ImageAction 去创建一个JButton,同时设置这个JButton 的颜色,最后加到JToolBar 中该功能截图如图3。