java画板课程设计报告

合集下载

绘图JAVA程序报告(含程序)

绘图JAVA程序报告(含程序)
本次编程的环境为 JDK。 2.4.工具说明
本次编程工具为 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课程设计

画图板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基本绘图方法,能够使用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编程语言的基本语法、基本概念和基本编程方法,培养学生运用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编程的基本语法、面向对象编程思想以及常用的数据结构与算法。

通过课程的学习,使学生能够独立完成简单的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画板菜单栏课程设计

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课程设计--迷你画板

天津商业大学宝德学院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。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 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。

相关文档
最新文档