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实验报告Java实验报告实验名称:Java图形界面编程实验对象:Java初学者实验目的:通过实际操作掌握Java图形界面编程的基本知识和技巧实验过程:1. 实验准备:安装Java JDK开发环境,并准备好IDE工具(如Eclipse或IntelliJ IDEA)2. 创建工程:打开IDE工具,新建一个Java工程,并指定工程名和保存路径3. 创建界面:在工程上新建一个Java类,命名为"MainUI"4. 设计界面:在"MainUI"类中使用Swing或JavaFX等GUI库,设计界面布局和组件5. 添加事件监听:在"MainUI"类中添加事件监听器,使组件与逻辑代码进行关联6. 编写逻辑代码:在"MainUI"类中编写逻辑代码,实现界面交互和功能实现7. 编译运行:将工程编译成可执行文件,并运行程序,查看界面效果和功能是否符合预期8. 调试修复:根据实际运行情况,对代码进行调试和修复,确保程序的稳定性和正确性9. 测试验证:使用不同输入数据对程序进行测试,验证程序的鲁棒性和准确性10. 总结反思:对实验过程进行总结和反思,提出改进和优化的建议实验结果:通过实验,我成功创建了一个简单的Java图形界面程序,并实现了基本的交互和功能。

在界面设计方面,我使用了Swing库进行布局和组件的添加,通过事件监听器实现了按钮点击和文本框输入的监听。

在逻辑代码方面,我实现了简单的计算器功能,能够进行加减乘除等基本运算。

通过测试验证,程序运行稳定,结果准确。

实验心得:通过这次实验,我对Java图形界面编程有了更深入的了解和掌握。

我学会了使用Swing或JavaFX等库进行界面设计,以及如何添加事件监听器和编写逻辑代码。

通过实际操作,我发现编写图形界面程序相对于命令行程序更加复杂,需要考虑到用户的交互和界面布局,还需要注意代码的可读性和可维护性。

java图形用户界面实验报告

java图形用户界面实验报告

java图形用户界面实验报告
《Java图形用户界面实验报告》
一、实验目的
本次实验旨在通过使用Java图形用户界面(GUI)工具,掌握Java程序设计的
基本原理和方法,加深对Java语言的理解和应用。

二、实验内容
1. 使用Java的Swing和AWT等图形用户界面工具,设计一个简单的窗口界面。

2. 在窗口中添加按钮、文本框、标签等组件,并实现相应的事件处理。

3. 编写Java代码,实现窗口界面的布局和交互功能。

三、实验步骤
1. 首先,创建一个新的Java项目,并新建一个窗口类。

2. 在窗口类中使用Swing和AWT工具,设计窗口界面,并添加所需的组件。

3. 编写事件处理方法,实现按钮点击、文本框输入等操作的响应。

4. 调试和运行程序,检查窗口界面的布局和功能是否符合预期。

四、实验结果
经过一系列的编码和调试,最终实现了一个简单的Java图形用户界面程序。


程序具有良好的界面布局和交互功能,用户可以通过按钮点击和文本框输入进
行相应的操作。

五、实验总结
通过本次实验,我深入理解了Java图形用户界面的设计原理和实现方法,掌握
了Swing和AWT等GUI工具的使用技巧。

在今后的学习和工作中,我将继续
加强对Java编程的实践,不断提升自己的技能水平,为今后的软件开发工作打
下坚实的基础。

java实训报告(通用9篇)

java实训报告(通用9篇)

java实训报告java实训报告(通用9篇)在当下社会,大家逐渐认识到报告的重要性,写报告的时候要注意内容的完整。

那么一般报告是怎么写的呢?下面是小编精心整理的java实训报告,欢迎大家借鉴与参考,希望对大家有所帮助。

java实训报告篇1一、实训目的1.熟练掌握Java面向对象程序设计的基础知识。

2.熟练掌握Java中常用的Swing组件的使用方法。

3.熟练掌握Java程序中图形用户界面设计的方法。

4.熟练掌握使用JDBC操作数据库的方法。

5.通过实训,培养学生分析和解决实际问题的能力,提高调试和分析应用程序的能力,并为后续Java高级编程等专业课程的学习奠定良好的基础。

二、课程设计报告内容2.1 实训内容本课程设计的题目是设计一个简化的仓库管理系统。

该系统从仓库管理人员的角度出发,实现对货物信息、生产商信息的浏览、添加、删除和查询,同时还可以对货物出货、入货进行操作和控制。

设计内容主要包括系统分析、数据库、数据表的创建、系统各个窗体的布局及其编码实现。

系统功能分析是在系统开发的总体任务的基础上完成的。

该管理系统需要完成的基本功能主要有:用户管理:主要包括用户的添加、修改和删除。

供应商管理:主要包括供应商的添加、删除和修改。

产品管理:主要包括产品的添加、删除和进货、出货。

产品视图管理:主要包括产品查询、数据文件的导入、查询结果集的导出。

2.2 实训设备或软、硬件硬件:PⅣ及以上性能的PC机;软件:Windows 20xx或Windows XP系统;JDK工具;JCreator4.0环境2.3 功能设计及思想本次实训设计采用选择结构化开发方法,即用系统工程的思想和工程化的方法,按照用户至上的原则,自顶向下整体分析与设计和自底向上逐步实施的系统开发过程。

是组织、管理和控制信息系统开发过程的一种基本框架。

其基本思想:在系统分析时,采用自顶向下、逐层分解,由抽象到具体的逐步认识问题的过程;在系统设计的时候,先考虑系统整体的优化,再考虑局部的优化问题;在系统实施的时候,则坚持自底向上,先局部后整体,通过标准化模块的连接形成完整的系统。

JAVA绘图实验报告

JAVA绘图实验报告

南京工程学院 实 验 报 告 课程名称 java基础 实验项目名称 图形用户界面设计 实验学生班级 实验学生姓名 学 号 同组学生姓名 无 实验时间 2012年11月 实验地点 实验成绩评定 指导教师签字 年 月 日一、实验目的和要求1.目的:掌握java awt及swing组件的使用方法,包括窗口、框架、对话框、布局方式、面板、文本编辑器、按钮、组合框等,合理利用委托事件处理模型,掌握不同组件,不同事件的事件处理方法,设计出能够响应事件的java图形用户界面。

2.要求:设计图形用户界面,事件处理,异常处理并弹出对话框,提示重新输入信息。

二、实验题目 验证哥德巴赫猜想,添加图形用户界面三、实验方法与步骤(需求分析、算法设计思路、流程图等)1.添加图形用户界面 import java.awt.*; import java.awt.event.*; import javax.swing.*; public class gdbh extends frame implements actionlistener //窗口框架响应单击事件,利用awt组件设计框架 {private button button; //按钮 private textfield text1; //文本行 private textarea text2; //文本区 public gdbh() {super(验证哥德巴赫猜想); //设置框架窗口标题 this.setbounds(450, 200, 350, 400); //设置框架的位置和尺寸 this.setresizable(false); // 设置框架大小不可改变 this.setbackground(color.lightgray); //设置窗口背景颜色 this.setlayout(new flowlayout()); // 默认窗口流布局 中对齐 this.add(new label(输入一个整数)); text1=new textfield(,20); this.add(text1); button=new button(验证哥德巴赫猜想); this.add(button); button.addactionlistener(this); //为按钮注册单击事件监听器,委托当前对象处理事件 this.setlayout(new flowlayout()); //默认中对齐 text2=new textarea(20,25); text2.seteditable(false); this.add(text2); this.setvisible(true); //设置组件可见 this.addwindowlistener(new winclose()); // 为框架注册窗口事件监听器,委托winclose对象处理事件 }2.实现单击事件和窗口事件监听器接口 public void actionperformed(actionevent e) //单击事件处理方法,实现actionlistener接口 {string str =text1.gettext(); //获得文本行的字符串try {long num = long.parselong(str); // 将字符串转化成长整形text2.settext(yz(num)); }catch(numberformatexception n) {joptionpane.showmessagedialog(this, \+str+\字符串不能转换成整数,请重新输入!!); return; }}class winclose implements windowlistener //实现窗口事件监听器接口 {public void windowclosing(windowevent e) // 窗口关闭事件处理方法 {system.exit(0); //程序运行结束 } public void windowopened(windowevent e) {} public void windowclosed(windowevent e) {} public void windowiconified(windowevent e) {} public void windowdeiconified(windowevent e) {} public void windowactivated(windowevent e) {} public void windowdeactivated(windowevent e) {} }3.异常处理 若文本行中的字符串不能转化成长整形,将弹出对话框“字符串不能转换成整数,请重新输入!!;另外如果所输入的整数为小于等于2或大于2小于等于5 也会弹出一个对话框“输入错误!必须是大于2的偶数或大于5的奇数!!”(该窗口代码设置在yz()函数中)。

超级画板实验报告

超级画板实验报告

一、实验背景随着计算机技术的不断发展,图形处理软件在日常生活中得到了广泛应用。

为了提高图形绘制的便捷性和多样性,本实验旨在设计并实现一个功能强大的超级画板程序。

该程序能够满足用户绘制点、线、多边形、椭圆等图形的基本需求,并具备保存、打开自定义图形文件的功能。

二、实验目的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编程语言,利用图形界面设计工具和图形库,实现了一个简单的图形界面程序。

本实验主要包括了界面设计和图形绘制两个部分,通过实验过程,我们深入了解了Java图形界面编程的基本原理和实现方法。

一、实验目的1. 了解Java图形界面编程的基本原理和实现方法;2. 掌握Java图形界面设计工具的使用;3. 掌握Java图形库的使用;4. 实现一个简单的图形界面程序。

二、实验内容1. 界面设计:使用Java图形界面设计工具,设计一个简单的界面,包括按钮、文本框等基本组件;2. 图形绘制:利用Java图形库,实现在界面上绘制简单的图形,如直线、矩形等。

三、实验步骤1. 界面设计:使用Java图形界面设计工具,创建一个新的界面窗口,添加按钮和文本框等组件,设置它们的位置和大小;2. 图形绘制:在界面上添加一个画布组件,利用Java图形库在画布上绘制简单的图形,如直线、矩形等;3. 编写Java代码,实现界面和图形的交互功能,如按钮点击事件等。

四、实验结果通过实验,我们成功实现了一个简单的图形界面程序。

界面上包括了按钮和文本框等组件,通过按钮点击事件,可以在画布上绘制直线、矩形等图形。

五、实验总结通过本次实验,我们深入了解了Java图形界面编程的基本原理和实现方法,掌握了Java图形界面设计工具和图形库的使用。

通过实验过程,我们对Java图形界面编程有了更深入的认识,为以后的学习和实践打下了坚实的基础。

六、参考资料1. 《Java图形界面编程实例详解》;2. 《Java图形库使用手册》。

通过本次实验,我们对Java图形界面编程有了更深入的认识,为以后的学习和实践打下了坚实的基础。

希望通过今后的实践和学习,能够更加熟练地运用Java图形界面编程技术,实现更加复杂和丰富的图形界面程序。

java 图形用户界面编程实验报告

java 图形用户界面编程实验报告

实验3 图形用户界面编程(设计性实验)一、实验目的1、熟悉Swing的基本组件,包括文本输入框、多行文本输入框、按钮、列表框等;2、熟悉常用的布局管理器3、了解GUI图像用户界面的设计方法4、掌握Java组件的事件处理机制5、熟悉基于内部类和匿名类的事件处理方式二、实验要求1、学生应做到独立上机操作2、编程前应将程序的设计构想完成,主要包括所要创建的类的结构及属性和行为。

3、上机输入和调试自己所编的程序,并存在自己的软盘上。

4、检查实验结果是否正确。

5、上机结束后,写出实验报告,要求附运行界面、源代码。

实验报告中应对实验结果进行分析,尤其是针对错误输出的分析。

三、实验内容1. 选做:编写程序,显示一个窗口,窗口中包含一个按钮。

当单击按钮时将弹出另一个窗口。

2. 编写一个简单的计算器程序,实现两个数相加。

在文本框输入两个实数,点击“相加”按钮实现两个实数相加,并在标签中显示相加结果。

点击“清除”完成对文本框和运行结果的清除。

四、实验代码及结果1、import javax.swing.*;import java.awt.event.*;import java.awt.*;public class TestFrame{public static void main(String args[]){JFrame f=new JFrame("Test");f.setSize(400,200);f.setLayout(new FlowLayout(FlowLayout.CENTER));f.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);JButton b=new JButton("确定");b.addActionListener(new ButtonHandler());f.add(b);f.setVisible(true);}}class ButtonHandler implements ActionListener{public void actionPerformed(ActionEvent e){JFrame fr=new JFrame("Hello");fr.setSize(200,100);fr.setVisible(true);}}import javax.swing.*;import java.awt.event.*;import java.awt.*;public class TestCalculator implements ActionListener{JFrame f;JTextField t1;JTextField t2;JTextField t3;JButton b1;JButton b2;public TestCalculator(){f=new JFrame("Calculate");f.setSize(400,200);f.setLayout(new GridLayout(2,3));f.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);t1=new JTextField();t2=new JTextField();t3=new JTextField();b1=new JButton("add");b2=new JButton("clear");b1.addActionListener(this);b2.addActionListener(this);f.add(t1);f.add(t2);f.add(t3);f.add(b1);f.add(b2);f.setVisible(true);}public void actionPerformed(ActionEvent e){if(e.getSource()==b1){String s1=t1.getText();String s2=t2.getText();int a=Integer.valueOf(s1).intValue();int b=Integer.valueOf(s2).intValue();int c=a+b;t3.setText(Integer.toString(c));}else{t1.setText(" ");t2.setText(" ");t3.setText(" ");}}public static void main(String args[]){ TestCalculator test=new TestCalculator(); }}。

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

二、Java画板的设计一、实验名称及其要求A、实验名称:Java画板的设计B、实验要求:1.实验目的:图形界面设计。

熟悉java.awt包中的组件,掌握图形界面设计方法,理解委托事件处理模型。

2.实验要求:(1)设计图形界面添加菜单:窗口上添加各种组件及菜单,并处理组件及菜单的事件监听程序。

(2)实现画板的基本功能。

二、程序设计本程序完成的是一个类似于Windows画图板的绘图程序。

由于不是开发和设计专业的绘图和图像制作软件,所以,完成的程序的简单功能包括以下几项:1.新建一个空白图形文件:用于绘制新的图形。

2.打开或保存一个图形文件,便于对图形文件的管理。

3.绘制一些基本的画图组件:直线、矩形、实心矩形、椭圆、实心椭圆、圆、实心圆、圆角矩形、实心圆角矩形等。

4.可以用鼠标在绘图面板上单击拖动进行随笔画。

5.橡皮擦:可以将已绘制好的图形擦掉。

6.添加文字:可以在绘图区域内添加文字。

7.选择文字的字体:通过一个下拉式的选择条,可以选中所需要的字体。

本程序中包括:宋体、隶书、华文彩云、仿宋_GB2312、华文行楷、方正舒体、Times New Roman、Serif、Monospaced、SonsSerif、Garamond。

当然,在下面的的程序分析中可以看到,由于我们灵活设置了字体数组,是的可以随意添加系统支持的任何字体。

大大方便和简化了程序设计。

8.选择文字的字体风格:通过两个复选框按钮,可以选择需要的字体风格,包括:粗体、斜体,使用者有三种选择方式,包括:①同时选中两者、②只选择其中一种、③两者都不选中。

9.设置画笔的颜色:可以选择当前绘制图形的画笔颜色,让图形更加丰富多彩、生动活泼。

10.设置画笔的粗细:该选项在作用于基本图形组件和文字时,它的效果是不一样的。

①当作用于绘制图形组件时,它的作用是改变画笔绘制线条的粗细;②当作用于文字时,它的作用是改变文字的大小。

由此可以看到,虽然我们的画图板程序不及那些专业的绘图程序,但是,“麻雀虽小,五脏俱全”,它已经具备了一个绘图软件所应该有的基本功能和操作。

通过对本程序的分析,我们可以更加系统地学习和了解如何从整体上设计和实现一个程序。

(一):程序基本组成框架和结构1.一组基本图形按钮,包括:pencil(随笔画)、line(直线)、rect(矩形)、frect (实心矩形)、oval(椭圆)、foval(实心椭圆)、circle(圆)、fcircle(实心圆)、roundrect (圆角矩形)、frrect(实心圆角矩形)、rubber(橡皮擦)、word(文字)。

这些基本图形都继承于同一个父类:drawings。

drawings 具有变量(属性):int x1,x2,y1,y2; //用来存放相应图形元素的坐标int R,G,B; //用来存放图形色彩颜色信息float stroke; //用来存放画笔粗细int type; //用来保存图形类型String s1; //用来保存输入文字字符串String s2; //用来保存字体类型字符串同时,drawing还具有方法:void draw ( Graphics2D g2d ) {} ;draw()方法中用到了Java绘图里面的Graphics2D类,所有继承drawings类的图形子类都重写了此方法。

这就是Java程序中类的继承的概念。

它对于程序代码的重用是很重要的,将极大的方便和简略程序代码。

2.此外,程序中还包括一下三个基本操作按钮:①新建(New):新建一个图形文件。

②打开(Open):打开一个图形文件。

③保存(Save):保存当前图形文件。

3.选择颜色和设置当前画笔粗细的按钮分别为:颜色(Color)、线条粗细(Stroke)。

4.选择当前字体风格的选择框为:粗体(BOLD)、斜体(ITALIC),用以设置当前字体的风格。

5.选择当前字体的下拉式复选框为:Styles。

6.菜单条及其组成:①文件(File)菜单项,包括:New(新建一个图形文件)、Load(打开一个图形文件)、Save(保存当前图形文件)、Exit(退出程序)。

②颜色(Color)菜单项:用来设置当前颜色。

③线条粗细(Stroke)菜单项:用来设置当前画笔粗细。

④帮助(Help)菜单项:有关的程序帮助提示。

完成的程序界面效果如下图:二):画图板相关操作1.新建一个图形文件选择File→New菜单,则清除当前所绘制的图像,回到初始画面。

2.打开已有的文件选择File→Load菜单,则清除当前所绘制的图像,并弹出打开文件对话框要求选择要打开的文件。

如下图:3.保存选择File→Save菜单,则弹出要求保存文件对话框。

4.绘制基本图形基本图形包括以下几种:pencil:随笔画,图标为:。

line:直线,图标为:。

rect:矩形,图标为:。

frect:实心矩形,图标为:。

oval:椭圆,图标为:。

foval:实心椭圆,图标为:。

circle:圆,图标为:。

fcircle:实心圆,图标为:。

roundrect:圆角矩形,图标为:。

frrect:实心圆角矩形,图标为:。

Rrubber:橡皮擦,图标为:。

绘图时,单击工具栏上相应图形的图标,然后用鼠标拖动,在绘图区域内进行绘图即可。

5.设置画笔大小单击工具栏上的图标,或单击Stroke→Set Stroke菜单,则弹出相应的设置当前画笔粗细对话框。

如下图:6.选择颜色单击工具栏区域,或单击Color→Choose Color菜单,则弹出相应的选择当前画图颜色对话框。

如下图:1.选择字体风格在工具栏区域,可以选择相应的字体风格,有粗体、斜体和粗斜体三种可供选择。

2.选择字体在工具栏区域,可以选择字体,本程序中有如下几种字体可供选择:宋体、隶书、华文彩云、仿宋_GB2312、华文行楷、方正舒体、Time New Roman、Serif、Monospaced、SonsSerif、Garamond。

三:系统功能设计分析画板主要由以下几个部分组成:1.主窗体的设计。

主类(DrawPad)用来生成主界面,完成画图板的主要框架。

主类由JFrame派生出来。

主界面由菜单栏、工具栏和画图区域三部分组成,布局格式采用BorderLayout布局形式。

2.菜单栏和工具栏的设计。

菜单栏包括文件菜单栏、颜色菜单栏、线条粗细菜单栏和提示菜单栏。

其中①文件菜单栏包括文件的新建、打开、保存等选项;②颜色菜单栏可以进行颜色选择;③线条粗细菜单栏设置线条的粗细;④提示菜单栏给出提示信息。

工具栏由新建、打开和保存文件按钮、基本图形的按钮、选择字体风格复选框和字体下拉列表框组成。

在主类中添加并对菜单栏和工具栏添加事件监听。

3.事件响应的处理。

对菜单栏、工具栏和用鼠标画图的事件响应进行处理。

①菜单栏中文件的新建、打开和保存菜单事件的处理:Java把每个文件都视作顺序字节流。

如果要在Java中进行文件处理,则必须用到Java.io包。

这个包定义了一些流类,选用FileInputStream(从文件中读入数据)和FIleOutputStream(向文件输出数据),通过建立这些文件的对象便可以打开文件。

这些流相应地从InputStream 和OutputStream派生,这些文件均使用文件流,所以必须将文件结构化以适应程序的要求。

我们需要对保存的对象序列化,然后以输出流的方式保存。

在程序中用newFile()、loadFile()和saveFile()三个函数分别实现文件的新建、打开和保存。

②工具栏事件的处理:主要有一些Button组成。

我们用ButtonHandler内部类处理基本单元事件,ButtonHandler1内部类处理新建、打开和保存文件按钮,在画图类DrawPanel中定义CreateNewItem()函数处理工具栏中的画图事件。

③鼠标画图:由于画图板主要是用来画图,所以需要在程序中添加对鼠标按下、拖动、进入、退出、移动和单机事件进行监听并进行处理。

内部类mouseA定义了完成鼠标按下、松开、进入、退出事件响应。

内部类mouseB完成鼠标拖动和移动事件响应。

4.画图的基本功能。

在程序设计中用到了动态绑定,我们可以提取他们的公共属性,先建立一个父类,然后建立各个子类,继承父类中的方法并将父类中的draw 函数重写。

一些关于图形形状的类,最主要是用于画图、字体和橡皮擦等基本类型。

如Circle、Triangle、Rectangle,它们都是有超类(Object类)派生的。

在面向对象编程中,每个类都有画出自己的能力,每个类都有自己的draw函数,但每种形状的draw函数都不一样,但在绘制任何形状时,只需简单调用父类drawing的draw方法,然后让程序动态地根据对象的类型决定使用哪个子类的draw方法。

为了使画出的图形更加美观,我们在draw函数中使用了Graphics2D的对象的引用。

这样可以在不改变原程序的情况下,添加扩展的图形,是程序变得更加强大。

同时,为了文件的保存,父类实现Serialize接口,将对象线性化。

四:程序结构说明本程序主体为一个文件:QingDrawPad.java。

其中包括的程序段有:①DrawPad():构造函数,用以初始化。

②chooseColor():选择当前绘图颜色程序段。

③setStroke():设置当前画笔粗细程序段。

④loadFile():调用图形文件程序段。

⑤newFile():新建一个图形文件程序段。

⑥saveFile():保存当前所绘制图形程序段。

⑦creatNewItem():新建一个基本图形单元程序段。

相应的内部类有:①ButtonHandler:用来处理基本图形单元的按钮事件。

②ButtonHandler1:用来处理New、Open、Save三个操作按钮的按钮事件。

③DrawPanel:用来创建绘图区域的子类。

④MouseA:继承了MouseAdapter,用来完成鼠标相应事件的操作,如单击、松开、进入和离开等。

⑤MouseB:继承了MouseMotionAdapter,用来完成鼠标拖动和鼠标移动的相应事件操作。

此外,还继承了父类drawings的基本图形子类,如前所述,这里不再重复。

五:程序绘图效果示意图我们可以看到,整个程序界面很简洁,而且界面操作、提示内容全部是中文,一目了然。

在左上方的菜单栏里有文件、颜色、线条粗细、帮助4个下拉式菜单,可以对绘图文件进行相应的操作。

下面一排是工具栏的工具按钮,从左到右依次为:新建文件、打开文件、保存文件、随笔画、直线、空心矩形、实心矩形、空心椭圆、空心圆、实心圆、空心圆角矩形、实心圆角矩形、橡皮擦、颜色选择按钮、线条粗细设置按钮、文字添加按钮、粗体字体选择框、斜体字体选择框、字体选择下拉式选择框。

相关文档
最新文档