java简易画图板

java简易画图板
java简易画图板

华北科技学院

课程设计说明书

班级: 网络B101

设计题目: 画图板软件开发和设计

评语:_________________________________

_________________________________________

_________________________________________

_________________________________________

_________________________________________

评阅成绩:____评阅教师:_____

目录

1 引言 (1)

1.1课程设计选题 (1)

1.2课程设计的目的 (1)

1.3本选题的设计背景 (1)

2 需求分析 (1)

2.1 功能需求 (1)

2.2 系统的开发运行环境 (2)

3 总体设计 (2)

3.1 系统体系结构设计 (2)

3.2系统功能模块及主要类设计 (3)

4 详细设计与实现 (6)

4.1 菜单栏模块 (6)

4.2 文字字型工具栏模块 (7)

4.3 工具栏模块 (8)

4.4 颜色选择面板模块 (10)

4.5 鼠标状态栏模块 (12)

4.6 画图区域以及整体布局模块 (13)

5 小结和展望 (15)

参考文献 (17)

附录 (17)

使用说明书 (17)

1引言

1.1课程设计选题

《画图板软件开发和设计》

1.2课程设计的目的

使学生巩固和加深以Java 语言为基础的面向对象编程技术理论知识的理解,提高实际动手编程能力的培养,掌握以Java为核心的应用软件开发方案,达到能独立阅读、编制和调试一定规模的Java程序的水平。

1.3本选题的设计背景

平时生活中,我们会需要处理一些基本的图像,也有可能需要花一些简单的图像,平时所使用的图形处理工具有 PhotoShop、Windows 画图工具等,其中PhotoShop 是一款非常强大的图形处理工具,Windows 画图工具则是一款较为简单的画图工具,功能较为简单,用Windows画图工具,是一种比较简单与具有代表性的画图工具,虽然功能不够强大,但具有大多图片处理程序所必需的基本功能:铅笔画图、各种数学函数图形、填色、取色、橡皮擦等等。所以这次课程设计我做的就是一个仿照Windows画板的程序。

通过画图板软件开发与设计,更深刻地体会java语言较之其他语言在图形用户界面的优势。熟悉java语言中常用的关于画图的各个类的功能和常用的方法(java图形用户界面中的众多函数与类的关系),并在实验过程中加深对java语言的理解与运用。

2需求分析

2.1 功能需求

对于绘图软件,应具备最基本的绘制直线,矩形框,圆形框,椭圆框等最基本功能,此外,要可以对绘制的图形进行修改;将绘制好的图形进行保存,打开以前保存的图形;在需要的时候,可以绘制实心矩形,实心圆形,实心椭圆等常见的几何图形。可

以在绘图区添加文字,方便注释。可以修改颜色。要有自由铅笔的功能,可以方便自由添加曲线。有橡皮擦的功能选项可以对图像进行局部擦除。

2.2 系统的开发运行环境

本系统开发平台: Java

本系统集成开发环境:Eclipse

本系统运行环境: Windows xp

3总体设计

3.1 系统体系结构设计

这个画图板程序的界面包括菜单栏、文字字型工具栏、工具栏,绘图区、颜色选择面板和鼠标状态栏。以下是对各部分所包含的内容作介绍:

窗口:整个界面的最外围部分,显示画图板的名字;

文字字型工具栏:包括对文字是否加粗、倾斜的设置,以及对要输入的文字的字体设置。

菜单栏:包括文件,颜色,编辑,图像,帮助5个菜单项;

文件:包括新建,保存,打开,退出4个选项;

颜色:包括编辑颜色选项,可弹出颜色选择对画框;

编辑:包括撤销,恢复,复制,粘贴4个选项;

图像:包括图像缩放,翻转,旋转,倾斜4个选项,其中翻转包含水平翻转和竖直翻转两个子选项;

帮助:包括帮助主题,关于画图板2个选项。关于画图板显示关于画图板及作者的一些信息介绍;

工具栏:包括自由画笔(铅笔)、直线、空心矩形、填充矩形、空心椭圆、填充椭圆、空心圆形、填充圆形、空心圆角矩形、填充圆角矩形、橡皮擦、设置背景颜色、画笔粗细设置"、输入文字"的按钮。

绘图区:用于绘制图形。

颜色择面板:这是一个简单的颜色选择面板,只有最基本的几种颜色选择。

状态栏:显示鼠标所处的状态和位置。初始状态显示提示信息“欢迎进入我的绘图板世界”。光标移动后,显示光标状态及其所在位置。

3.2系统功能模块及主要类设计

1.功能描述

该画图板可以用于画直线、矩形、实心矩形、椭圆、实心椭圆、圆形、实心圆形、等各类常见的几何图形。当出现错误时,可以用橡皮擦工具对图像进行局部清除,也可以新建一个文件覆盖掉原文件。可以通过颜色选择面板选择颜色实现对画图板的画笔颜色的设置,也可以通过菜单栏颜色菜单的编辑颜色选项打开颜色选择对话框选择较为复杂的颜色。还可以点击工具栏中的设置背景色按钮选择颜色设置整个画面的背景颜色;当画笔大小不合适时,可以通过点击工具栏中的设置画笔粗细按钮进行设置;当需要时,用户可以向画图板中添加文字,以鼠标点击位置,为文字输入的位置,可以通过文字字型工具栏设置文字的样式,是否加粗或倾斜、选择什么字体。工具栏还可以移动。若不了解画图板使用方法,可以查看附录中的使用说明书;此外,帮助菜单下有关于画图板和作者的介绍;用户可以在文件中选择保存选项保存绘制的图形,可以选择打开,新建,另存等实现相应的操作。

仿照windows画板界面对各部分进行分配使该画图板的界面尽量合理。

2. 结构图

总体结构图(主要模块):

菜单栏结构图:

画图板

鼠标状态栏

颜色选项栏

绘图区

工具栏

菜单栏

图3.1程序总体结构图(主要模块)

3.在该画图板软件程序中的主要类、方法及其功能如下表: 类 名

功能 Class aaaaa

主类,扩展了JFrame 类,用来生成主界面

内部类:

Class ColorHandler 颜色选择面板侦听器ColorHandler 类,内部

类,用来侦听选择颜色选择面板中颜色按钮的操

Class ButtonHandle 按钮侦听器ButtonHanler 类,内部类,用来侦

听基本按钮的操作

Class ButtonHandler1 按钮侦听器ButtonHanler1类,用来侦听颜色选

择、画笔粗细设置、文字输入按钮的操作

Class mouseA 鼠标事件mouseA 类,继承MouseAdapter ,用来

完成鼠标相应事件操作

Class mouseB 鼠标事件mouseB 类继承了MouseMotionAdapter ,用来完成鼠标拖动和鼠标

移动时的相应操作

Class checkBoxHandler 选择字体风格时候用到的事件侦听器类,加入到

字体风格的选择框中

Class DrawPanel 画图面板类,用来画图

帮助

图像 编辑 颜色 文件 菜单栏

建 保存 打开 退出 编辑

色 撤销 恢复 复制 粘贴 图像缩放 翻转 旋转 倾斜 帮助主题 关于画图板

水平翻转 竖直翻转

图3.2菜单栏结构图

外部类:

Class Drawings 父类,基本图形单元,用到串行化接口,保存时

所用

class Line 直线类

class Rect 矩形类

class fillRect 实心矩形类

class Oval 椭圆类

class fillOval 实心椭圆

class Circle 圆类

class fillCircle实心圆类

class RoundRect圆角矩形类

class fillRoundRect实心圆角矩形类

class Pencil 随笔画类(铅笔画)

class Rubber 橡皮擦类

class Word 输入文字类

主要的方法及其功能如下表:

方法名功能

createNewItem() 新建一个画图基本单元对象的程序段主要用于判断工

具栏按钮事件

chooseColor() 选择当前颜色程序段主要用于菜单选项中的编辑颜色

及工具栏中设置背景颜色按钮的实现

setStroke() 选择当前线条粗细程序段

SetbgColor()选择背景颜色程序段

saveFile() 保存图形文件程序段

loadFile() 打开一个图形文件程序段

newFile() 新建一个文件程序段

主类aaaaa类中的构造方法实现了界面的初始化设计。实用setTitle函数将画图板的名字设置为“画图板”,默认窗口的初始位置为(0,0),设置大小,设置窗体的可见性为真,设置鼠标的属性为HAND_CURSOR,设置当单击窗体右上角的关闭图标时,程序做DO_NOTHING_ON_CLOSE处理,为窗体添加窗口监听器,当按关闭按钮时用

showConfirmdialog函数弹出“退出前是否保存?”的对话框;添加菜单条;为工具栏中的各按钮添加图片,之后将按钮添加到工具条中。将工具栏中的弹出菜单通过调用ToolMenu函数加入进去;为个按钮加上相应的监听器;将字体列表加入到工具栏中,设置下拉列表的最大显示行数为10行。其它类均为主类服务。

4详细设计与实现

4.1 菜单栏模块

1.功能设计

菜单栏实现的功能主要包括:

(1).对文件的保存、新建、打开等基本操作。

(2).对图像或文字对象的复制、粘贴、翻转、图像缩放、旋转等操作。

(3).选择较为复杂的颜色(设置整个画面的背景颜色或文字的颜色等)。

2.界面设计

菜单栏界面图:

3.模块算法(或重要代码段)

在菜单栏模块中主要格局的实现:

(1).创建菜单条

JMenuBar bar = new JMenuBar();

(2).创建实现功能的菜单项,对每个菜单进行监听。

为编辑颜色菜单项添加监听器:

colorItem.addActionListener(

new ActionListener() {

public void actionPerformed(ActionEvent e)

{ chooseColor(); //如果被触发,则调用选择颜色函数段

}

});

(3).创建菜单,并将每个菜单对应的菜单项添加到对应的菜单中。

4.2 文字字型工具栏模块

1.功能设计

文字字型工具栏模块是比较简单的一个模块,用以设置文字是否加粗、倾斜、是什么样的字体。

2.界面设计

3.模块算法(或重要代码段)

(1).用JCheckBox类创建按钮bold(加粗)、italic(倾斜),并设置背景颜色。

(2).创建事件侦听器类checkBoxHandler。checkboxHandler实现了接口ItemListener,为复选框的监听器类。重写了方法itemStateChanged。当事件源被选中时则设置字体为响应的风格,否则字体风格为默认风格;通过调用系统的getSource()函数获得事件源,通过ItemEvent的值判断该按钮是否被选中。

(3).创建checkBoxHandler对象cHandler。侦听bold(加粗)、italic(倾斜)。

(4).用JToolBar类创建对象buttonPanel2。将bold、italic添加到buttonPanel2中,buttonPanel2添加分割线,添加标签对象"字体:"。

(5).用JCheckBox类创建字体选择框对象styles,设置字体选框大小。侦听。

(6).将styles添加到buttonPanel2中。

详细实现见代码。

4.3 工具栏模块

1.功能设计

工具栏主要是为便于画图而将常用的画图工具设为按钮罗列出来,显示到工具栏上。将工具栏放到整个界面的左边。在该程序中画图工具有:铅笔,画直线、空心矩形、填充矩形、空心椭圆、填充椭圆、空心圆形、填充圆形、空心圆角矩形、填充圆角矩形、橡皮擦、设置背景颜色、画笔粗细设置、输入文字。

2.界面设计

工具栏初始界面及可移动界面图:

3.模块算法(或重要代码段)

该模块主要用于完成工具栏。实现界面的设计后,实现按钮的功能。

界面实现:

(1).用图片创建工具按钮。使用JButton 的JButton(AbstractActoinaction)构造器去创建JButton,以图形的方式创建按钮。

(2)将按钮添加到标题为"工具"的工具栏。设置工具栏属性。

(3).将工具栏添加到面板buttonpanel。

详细实现见代码

在该模块中所用到的函数有:

ChooseColor()函数:调用系统的JColorChooser中showDialog()方法,设置当前画笔的颜色,调用getRed()方法,获取所选中颜色的r、 g、b的值,将当前要添加的图形的颜色设置成相应的颜色。

SetStroke()函数:用于设置画笔粗细。调用系统showInputDialog()方法,跳出对话框让用户输入所需线条宽度。获得要设置的值(这里是以字符串的形式保存的),调用系统函数Float.parseFloat(String)函数,将字符串转换为float型,之后设置画笔粗细。

在工具栏这一模块中用到的类有:

ButtonHandler实现了接口ActionListener的方法,用于工具栏中画图按钮的监听。首先通过getSource()函数获得事件源,将currentChoice的值设置为事件源的值,新建一个绘图新项目,重绘组件。

ButtonHandler1实现了接口ActionListener的方法,用于工具栏中背景色,画笔粗细选择,画笔颜色,文件输入事件的监听。同样通过getSource()函数获取事件源,之后调用相应的函数,实现功能。

Drawings实现了Serialization接口,启用序列化功能。

画图时用到的类主要的类是外部类,详细功能见类表。

4.调试与测试

在工具栏这一模块的调试过程中遇到的问题比较多。刚开始调试时没有用图片创建按钮,想着先实现一个大概的模式再把图片加进去。然后,我显示创建了按钮后设置了工具栏面板的布局为GridLayout。用add()方法将按钮添加到面板中。但界面总是无法实现预期结果,有时甚至全屏都灰掉无法实现显示。我一直不知道为什么。后来找到一份实现了我想要的界面的画图软件设计的报告,报告中没有全部的代码,但是在工具栏这一模块中简单地介绍了界面实现的方法并附有部分代码。后来,我参照着要先将按钮添加到Toolbar的对象中,设置Toolbar对象的布局为GridLayout,并设置其它一系列属性。然后,再将其添加到面板中。可是在这部分代码中,他用到了一个自定义的类

(ImageAction),可是又没有这个类的参考代码。联系整份报告了解在他的程序中ImageAction类是个按键处理类,在这一模块中的大致功能应该是用图片创建功能按钮。在同学的帮助下用系统方法ImageIcon()创建了功能按钮。然后实现了界面的大概模式。

可是当我把图标图片添加到工程中,图标空心圆形和填充圆形无法显示。我就觉得很奇怪,明明是一样的按钮设置,怎么有的就无法显示呢?我把这一部分的代码反反复复地看了好几遍,没发现有什么错误。可那两个按钮的图片就是无法显示,后来看了图片才发现,在一整组图片中就Circle和fCircle两张图片格式和其他图片的不一样。而代码中在创建按钮时是用后缀为".jpg"的图片格式。所以按钮的图片只能是".jpg"文件才能将图片添加进按钮。后来,我修改了Circle和fCircle两张图片的格式。完成了界面的实现。

后来,在实现按钮功能的时候,由于是实现功能的代码是从其他参考代码中来的。而其源代码实现的按钮功能与我想要实现的工能的数目不一、顺序也不一样。导致按钮功能紊乱。在将多余的功能删除、缺少的功能添上、对按钮监听等顺序重新排列后,运行结果是大部分的功能都能正常使用了,可是铅笔按钮总是没法正常。看了好久都没发现什么问题。后来同学帮忙看了,才发现是因为没有修改在刚开始定义的画图区域的默认画图状态没有修改为本程序对应的数值:private int currentChoice = 0;

将画图状态设置默认画图状态为随笔画,导致一开始画图状态的失常。改成对应数值后,按钮的功能就能正常执行了。

4.4 颜色选择面板模块

1.功能设计

颜色选择面板主要是仿照Windows系统中的画图软件的颜色选择面板来设置界面的。将一些较为主要的、常见的颜色添加到面板中,供用户选择。主要是为便于用户进行颜色的替换。在该面板中可供选择的颜色有12种。

2.界面设计

主要包括两部分前面较大的按钮显示的是当前正在使用的颜色,默认为黑色。以下是实现的结果图:

3模块算法

颜色选择面板是参考工具栏模块来创建的。相比于工具栏模块需要考虑的问题也不少,比如如何设置当前所选用的颜色按钮及供选择的颜色选择按钮的排列。以及在供给选择的颜色选项中选择了颜色后,要如何同步到当前所选用的颜色按钮。还有,在工具栏模块中按钮是通过图片创建的,那么颜色选择面板的按钮要如何显示颜色。

同样颜色选择面板也是先创建出界面,然后通过监听动作实现其颜色选择的功能。

(1).创建颜色按钮(包括颜色选项及正在使用的颜色的按钮),设置按钮的背景颜色、大小。

(2).创建事件侦听器类ColorHandler实现了接口ActionListener的方法,用于颜色选项按钮的监听。首先通过getSource()函数获得事件源,将currentColorPanel的背景颜色设置为选中颜色按钮的颜色。然后将选中按钮的颜色的R,G,B值传给当前画笔。

(3).用ColorHandler创建对象ch。侦听颜色选项按钮。把按钮加到JToolBar类实例colorTool中。设置colorTool的布局方式为GridLayout。

(4)将colorTool添加到颜色面板colorpanel上。详细实现见代码。

//颜色选择面板侦听器ColorHandler类,用来侦听选择颜色选择面板中颜色按钮的操作

public class ColorHandler implements ActionListener {

public void actionPerformed(ActionEvent e) {

for(int i=0;i

if(e.getSource()==panelArr[i]){

currentColorPanel.setBackground(colorArr[i]);

R = currentColorPanel.getBackground().getRed();

G = currentColorPanel.getBackground().getGreen();

B = currentColorPanel.getBackground().getBlue();

itemList[index].R = R;

itemList[index].G = G;

itemList[index].B = B;

}

}

} }

4.调试与测试

由于颜色选择面板是在完成工具模块后才着手做的,所以问题相对比较少一些,但还是遇到了一些问题。

在考虑如何设置颜色按钮显示的颜色的时候,有考虑找颜色图标图片来创建按钮。后来考虑到还要用到颜色的R,G,B值,所以决定用系统类的方法来设置颜色。但是因为以前对没有用过相关功能,不清楚如何设置按钮颜色,后来查了下发现可以通过设置按钮的背景颜色显示颜色按钮。然后直接按钮背景颜色的值。

最后虽然程序能运行,对颜色选择功能也能正常执行。但环境提示有错,因为程序能运行所以我没怎么在意。后来同学在帮忙看程序的时候,发现环境报错。就看错误提示说大概是“超出定义范围”错误。查看了一番后,发现是因为在为颜色按钮创建监控器的时候for循环中本应是i

4.5 鼠标状态栏模块

1.功能设计

鼠标状态栏就是用以显示鼠标在画图区域内的状态是Exited、Moved或是Pressed,以及鼠标的横纵坐标。

2.界面设计

初始界面及常见显示界面:

3.模块算法(或重要代码段)

statusBar 是用标签类JLabel创建的对象。鼠标的状态是通过两个鼠标侦听类(鼠标事件mouseA类、鼠标事件mouseB类)得来并显示的。

//鼠标状态栏

statusBar = new JLabel();

statusBar.setText(" 欢迎进入我的绘图板界面!!! :)");

createNewItem();

setSize(width, height);

show();

JPanel status=new JPanel();

status.setLayout(new FlowLayout(FlowLayout.LEFT));

status.add(statusBar);

JSplitPane splitpane=new JSplitPane(JSplitPane.HORIZONTAL_SPLIT,colorpanel,status);

splitpane.setDividerLocation(550);

4.调试与测试

原本程序中没有颜色选择面板的时候,鼠标状态栏是显示在窗口的左下角的位置的。设置了颜色选择面板后,鼠标状态栏就被覆盖了。只能显示颜色选择面板,有时候程序运行还无法显示界面结果。

其实鼠标状态栏实现的界面有一点点没有达到我所想的结果,就是没有紧靠窗口下边框。可是因为鼠标状态栏与颜色选择面板同放在一个水平拆分窗格的左右两边,而我又不知道如何设置使其紧靠窗口下边框。时间也不容许再在这个问题上纠缠,所以我也就没有再深入考虑了。

4.6 画图区域以及整体布局模块

1.功能设计

在该程序中绘图区主要用自定义类DrawPanel面板类创建对象实现。在DrawPanel面板类中定义绘图区域的初始状态为铅笔。

而绘图时的主要操作工具是鼠标,因此对绘图区加入了鼠标事件的监听器,用于鼠标的各种状况的监听。在该程序中创建了两个鼠标事件的类。

鼠标事件mouseA类为MouseAdapter的子类,实现了4个函数,即mousePressed,mouseReleased,mouseEntered,mouseExited,作用如下:mousePressed:设置状态栏的提示信息为“鼠标点击”,调用系统函数getX()与getY()获取鼠标位置,并在鼠标状态栏输出,将x1,y1,x2,y2的值设置为当前鼠标的位置,若当前选择为铅笔或橡皮擦,则将当前已画图形的数目index加一,并创建新项目;若当前所选为文本,则对字体,文本进行相应的设置。

mouseReleased:设置状态栏的提示信息为“鼠标松开”,调用系统函数获取当前鼠标的位置并输出;若当前选择为自由画笔或橡皮,则将x1与y1的值设置为当前鼠标位置;设置x2,y2的值为当前鼠标位置,创建一个新的项目。

mouseEntered:设置状态栏的提示信息为“鼠标进入”,并显示鼠标位置。

mouseExited:设置状态栏的提示信息为“鼠标移出”,显示鼠标移出时的位置。

鼠标事件mouseA类为MouseMotionAdapter的子类,处理鼠标鼠标拖动事件,包括以下函数:

mouseDragged:设置状态栏的提示信息为“画图”,若当前选择为自由画笔或橡皮,则将当前图形的x值与y值及上个图形的x,y值做相应赋值,否则,只将当前图形的x2,y2的值设置为当前鼠标的位置。

mouseMoved:设置状态栏的提示信息为“鼠标移动”,并显示鼠标位置。CreateNewItem()函数:当当前选择为文本时,设置鼠标形状为TEXT_CURSOR,否则设置鼠标形状为CROSSHAIR_CURSOR,当当前选择为0到11或13时,则建立相应的实例,并结束switch语句,将itemlist中的属性设置为当前所选择的属性。

整体布局主要仿照windows画板界面,使该画图板的界面尽量合理。

2.界面设计

实现界面及主要功能实现:

3.模块算法(或重要代码段)

//整体的格局:

Container c = getContentPane();

c.setSize(600, 600);

super.setJMenuBar(bar); //设置菜单条

c.add(buttonpanel, BorderLayout.WEST);

c.add(buttonPanel2, BorderLayout.NORTH);

c.add(splitpane, BorderLayout.SOUTH);

c.add(scroll, BorderLayout.CENTER);

4.调试与测试

画图区域的滚动条还是没能正常显示,从一开始就一直在考虑画图区域的滚动条如何设置。因为画图区域是JPanel类的子类创建的对象,所以想像之前做记事本时为文本区加滚动条那样添加,好像是没法实现了。所以我查了下资料,可以将画图面板添加到滚动条对象中,然后将滚动条对象添加到容器中,然后将画图区域的大小设置成比窗口大,滚动条就能一直显示。我调试过,不知道是不是我那里弄错了,反正不行。所以,我还是按原来的方式来添加滚动条。但是,它还是没法正常显示。

在对于整个窗体的整体的格局的布置,几乎每加一个部分就会出现一系列问题。但是其实又不是什么真的无法解决的问题,只要好好的、耐心地分析代码,算法就能发现问题所在。这揭露了我还是没能很透彻地理解各个组件之间的关系、联系的问题。有时候看似很简单的问题,解决起来并不简单。

5小结和展望

从一开始确定了题目后,就确定了以 Windows XP系统中带画图软件作为参考来设计界面及功能的大致方向。

我先是从图书馆找了参考的书,有关整个软件的主要功能或者关于我想实现的部分功能的介绍即常考代码。后来找了一份与我想实现的功能较为接近的程序来参考。但没能找到与系统自带画图软件界面相似的程序源代码。只找到一份实验报告说明。但是在这份报告中介绍了布局的主要方法。

程序虽然已做完成处理。但是它还是有许多不足。我觉得最遗憾的就是菜单栏里的选项有好些都没有实现。如对图像的处理中翻转、倾斜、缩放等功能还有编辑

菜单栏。原本是有找了参考资料,但是对图像的处理并不是很理解,将代码录入到环境中,也没有调试出结果。其实有矩形区域的复制、粘贴等功能还是可以完善的。但是和图像的处理一样,没能较仔细的去研究一下。觉得还蛮可惜的。又由于在实现关于整个窗口的布局和工具栏上纠结了较长的时间,所以后面没有较充分的时间来实现菜单栏上的主要选项的功能。

而在看完了其他同学的程序代码后,我发现自己程序代码通篇在一个java文件中,对其中的部分功能进行调试的时候在找部分代码很费时间。影响调试。后来我就把其中的外部类另外建了一个名为Waibubule 的Java文件。但是主程序还是有七百多行的代码。还是比较复杂。本来可以把内部类也弄成一个java文件的,但是因为考虑到还要在内部类中创建主类的对像,怕时间来不及就没有进一步进行处理了。这也算一次教训吧,以后在编程过程中要多些考虑。

在windows系统中自带的画图软件中比较常用的工具有的喷枪和漆桶的功能,在这个程序中没有实现。漆桶的功能在这个程序中简化为设置背景颜色。这也是这个程序的一个比较大的不足。

在这次课程设计中我个人觉的还有一点比较欠缺的是我所选的题目没有用到与数据库连接的相关知识,而只是较为单一的只用了java语言来实现。可是,从另一个方面来看这个问题,又有些自我安慰的想把简单的问题最好就是不简单。完成程序后,也看了其他选了相同题目的同学的实现。发现了自己的程序中存在这样那样的问题,就有些后悔如果在课设过程中再多用心一些、紧迫一些,结果也许可以更尽人意些呢。在调试程序时,也许你自己陷入了盲点,请教一下别人也许就会茅舍顿开。有交流才有能学到新东西。

在这次课程设计的过程中,我又一点还蛮意外的体会。刚开始在选题、找代码、看代码时总觉得很难很难。这也不懂,那也不懂。但是,随着你对相关知识点的一点一点深入了解,当你慢慢理解了整个程序,你会发现其实它好像也没什么。并不是什么越不过的槛。是过知识的累积、扩充和巩固。而这整个过程中最重要的是你如何学习新的知识。比如API,在这次课程设计过程中,我深深的感受到了API 的作用。还有就是我们图书馆的资源其实是很丰富的。

通过这次课程设计,我收获了许多,也体会到了许多只有在实际编程过程中才能感受到经验、体会。每个小小的功能的实现其实都很不简单,要编程者对原理理解透彻,对实现的思路、步骤有清晰的概念,对相关知识有一定基础的掌握再加上耐心,才能顺利解决调试过程的问题实现功能。想来课程设计目的,也就在于此吧!

参考文献

[1] 耿祥义,张跃平. Java大学实用教程北京:电子工业出版社,2010.1

[2] 陈明. Java语言程序设计课程实践北京:清华大学出版社2009.1

[3] 李钟蔚.Java开发实战宝典北京:清华大学出版社,2010.1

[4] 吴仁群.Java基础教程北京:清华大学出版社202.4

[5] 朱晓龙.Java语言程序设计北京:北京邮电大学出版社,2011.4

附录

使用说明书

要在Eclipse或MyEclipse中运行该程序时必须将图片文件夹Icons文件放在同一个工程中。不然工具栏上按钮无法显示其图标。

该软件主要用以实现一般需求的画图功能,如圆形、椭圆等基本几何图形的绘制。使用说明如下:

菜单栏中各选项作用:菜单栏中的一部分功能能实现比如新建可以新建画图类对象。打开选项可以打开.bmp后缀名的文件,保存选项可以用以保存当前绘制的图片;

在窗口界面的左边的工具栏中,有12个较常见的画图工具,可根据图标、或将鼠标移到按钮区域内会有各个按钮功能的文字提示。使用户了解各按钮的功用:铅笔按钮:可以自由绘制线条好比画图时用的铅笔一般,初始的线条可能比较细,可以与设置画笔粗细按钮结合,先设置线条粗细,再画图;

直线按钮:可以绘制直线,也可与设置线条粗细功能结合;

空心矩形按钮:可以绘制任一大小的空心矩形,也可与设置线条粗细功能结合绘制边框较粗的空心矩形;

填充矩形,可以绘制任一大小的实心矩形;

空心椭圆,圆,空心圆角矩形的作用与使用方法同空心矩形;

填充椭圆,填充圆,填充圆角矩形的作用与使用方法同填充矩形;

橡皮可以将绘制的图形进行清除,初始的橡皮比较细小,可与设置线条粗细功能结合增加其宽度,用以清除较大范围的图形。;

设置背景色可以改变画图板画图区的背景颜色;

画笔粗细可以通过输入画笔的值改变画笔粗细的属性;

添加文字可以在鼠标点击处,添加所输入的文本,文字的字型可通过文字字型工具栏来设定;

颜色选择工具栏:可进行较常见的、数目较少的颜色的选择,用以设定当前画比的颜色。

可通过光标状态栏上,数值的显示,便于了解光标在画图区域中的具体位置,便于文本输入时的光标定位。

JAVA简单画板程序设计实验报告

JAVA期末画板实验报告 课程题目: 运用JAVA语言编写一个画板程序,这个画板要有画图,特殊图形绘制,颜色改变,画笔大小改变等功能。 设计思想: 1.进行界面设计 2.进行算法实现 3.运行调试 4.总结问题 设计过程: A.界面设计 新建一个Jframe容器,然后定义一个panel(Panel convas2),convas2是工具栏。用borderlayout布置容器的边框布局,将工具栏放在NORTH部分。完成界面设计。 add(canvas2,BorderLayout.NORTH); 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(); canvas2.add(choice); canvas2.add(choice1);

canvas2.add(btn1); canvas2.add(btn2); canvas2.add(btn3); canvas2.add(btn4); canvas2.add(btn5); canvas2.add(btn6); 在工具表中,有两个下拉菜单,分别收录画笔的大小和颜色。1.画笔的大小: choice1.add("1"); choice1.add("3"); choice1.add("5"); choice1.add("7"); choice1.add("9"); 2.画笔颜色 choice.add("黑色"); choice.add("蓝色"); choice.add("红色"); choice.add("黄色"); choice.add("绿色"); 3展示画板

简易画图板设计报告

设计报告:Graphic简易画 图板 -----韩伟谢程焜肖越周峰 电科二班

1设计目的 设计一个单文档类型的MFC AppWizard (exe)工程,工程取名为:Graphic。此程序将实现简单的绘图功能,包括点、直线、矩形、椭圆、扇形和连续线的绘制。并且能实现绘图的控制,包括线宽、线型和颜色的设置,图形的保存和打开以及笔刷的使用。 2 总体设计 设计图如图6

图6 3详细设计 首先,新建一个单文档类型的MFC AppWizard (exe)工程,工程取名为:Graphic。为此程序添加一个子菜单,菜单名称为“绘图”,并为其添加六个菜单项,分别用来控制不同图形的绘制。当用户选择其中的一个菜单项后,程序将按照当前的选择进行相应图形的绘制。添加的六个菜单项的ID及名称如表1所示。然后分别为这六个菜单项添加命令响应,本程序让视类(CGraphicView)对这些菜单命令进行响应,这六个响应函数的名称分别如表1所示。

在程序运行以后,当用户单击某个菜单项时,应该把用户的选择保存起来,以便随后的绘图操作使用。因此在CGraphicView类中添加一个私有变量m_nDrawType;用来保存用户的选择,该变量的定义如下所述: private: UINT m_nDrawType; 接着,在视类的构造函数中将此变量初始化为0,程序代码如下: CGraphicView::CGraphicView() { // TODO: add construction code here m_nDrawType=0; } 利用switch/case语句,来分别完成相应图形的绘制。当用户选择【绘图】菜单下的不同子菜单项时,将变量m_nDrawType设置为不同的值。程序代码如下:void CGraphicView::OnDot() { // TODO: Add your command handler code here m_nDrawType=1; } void CGraphicView::OnLine() { // TODO: Add your command handler code here m_nDrawType=2; } void CGraphicView::OnRectangle() { // TODO: Add your command handler code here m_nDrawType=3; } void CGraphicView::OnEllipse() { // TODO: Add your command handler code here m_nDrawType=4;

Java画图软件设计报告

佛山科学技术学院 《可视化编程技术》课程设计报告 画图软件设计 学生姓名:周敏婷 学号: 2011914123 年级专业:11级教育技术学2班指导老师:容汝佳 学院:教育科学学院 广东★佛山 提交日期:2013年6月

目录 1. 前言 (2) 2.概要设计 (3) 2.1 开发环境 (3) 2.2 画图软件功能 (3) 2.3 界面设计 (3) 2.4 类的框架结构图 (4) 3. 详细设计 (4) 3.1 使用的JAVA类的说明 (4) 3.2 类的主要方法 (5) 3.2.1 颜色选择

器 (5) 3.2.2 控制画笔样式 (5) 3.2.3 选取颜色按钮的监听件类 (6) 3.2.4 设计总体认识 (6) 3.2.5 程序流程图 (7) 4. 运行结果 (7) 5. 测试分析 (8) 5.1 程序运行情况 (8) 6. 源程序 (8) 参考文献 (14) 设计总

结 (14)

摘要:该程序是一个图形界面的简单的java画图软件,具有良好的界面,使用人员能快捷简单地进行操作。该画图软件操作较为简单,只需要一直按着左键就能根据你鼠标移动的方面,画出你想要的图案。你也可以选择你自己想到的颜色和画笔的粗细。而且可以显示你当前的画笔的状态。界面为灰白对称。是一个非常简单的作图工具,让人能轻松上手。 关键字:java,画图类,方法,事件 1 前言 随着科学技术的不断发展,计算机已经成为我们工作学习和生活中不可缺少的工具。文本编辑器是个人计算机最司空见惯的应用程序了,在学习了Java语言之后,我决定使用Java语言编写一个简单的画图工具,可以实现简单的画图作图功能,满足日常基本的工作学习和娱乐需要。 Java是由Sun公司开发的新一代纯面向对象的网络编程语言。其目标是建立一种在任意种机器、任一种操作系统的网络环境中运行的软件,实行所谓的“程序写一次,到处运行”的目标。正因为如此,Java已成为当今Internet上最流行、最受欢迎的一种程序开发语言。 Java开发小组把Java按特性分为基本版、移动版、企业版,每个版本有一个软件开发包。Java基本版本叫Java 2标准版(Java 2 Standard Edition,J2SE),它包含建立Java应用程序或者是Applet 所需的应用程序编程接口(API)。Java 2移动版(The Java 2 Mobile Edition,J2ME)包含创建无线Java应用程序的API。还有Java 2 企业版(The Java 2 Enterprise,J2EE)是J2SE的增强版本,包含建立多层架构应用程序API。 Java语言是由C++语言发展起而来的,是一种彻底的面向对象的程序设计语言。作为一种纯面向对象的程序设计语言,它非常适合大型软件的开发。Java语言去掉了C++语言的一些容易引起错误的特性。Java语言的特点有:面向对象、跨平台、安全性、多线程和图

vbnetgraphic简单的画图程序

https://www.360docs.net/doc/4b5445172.html, graphic 简单的画图程序 [vb] Public Class Form1 Dim DrawState As Boolean Dim PreX As Single Dim PreY As Single Dim eP As New Pen(Color.Black, 3) ' 构造黑色画笔,并将它赋给对象变量eP 'Dim g As Graphics = Me.CreateGraphics ' 在窗体上构造一块画布,并将它赋给对象变量g Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load ' 将DrawState初始化为False,表示提笔 DrawState = False End Sub Private Sub Form1_MouseDown(ByVal sender As Object, ByVal e As System.Windows.Forms.MouseEventArgs) Handles Me.MouseDown ' 当鼠标左键被按下时,把DrawState设为True,表示落笔开始画线 Dim g As Graphics = Me.CreateGraphics If e.Button = Windows.Forms.MouseButtons.Left Then DrawState = True ' 设置画图状态 PreX = e.X ' PreX和PreY保存了线条的起点。 PreY = e.Y End If ' 当按住鼠标右键时,画一个直径为50的圆 If e.Button = Windows.Forms.MouseButtons.Right Then g.DrawEllipse(eP, e.X - 25, e.Y - 25, 100, 100)

java画板程序

简单的Java画板程序 import java.awt.*; import java.awt.event.*; import java.awt.image.*; import java.io.*; import javax.imageio.*; import javax.swing.*; public class huaban { JFrame f=new JFrame("画板"); //JPanel P1=new JPanel(); //JPanel P2=new JPanel(); JToolBar jtb=new JToolBar("工具"); DrawCanvas drawArea=new DrawCanvas(); int preX = -1; int preY = -1; int X=0; float con=1; int Econ=5; JButton btn0=new JButton(new ImageIcon("image/12.png"));//打开JButton btn1=new JButton(new ImageIcon("image/13.png"));//保存JButton btn2=new JButton(new ImageIcon("image/1.png"));//画笔 JButton btn3=new JButton(new ImageIcon("image/2.png"));//直线 //JButton btn4=new JButton("曲线"); JButton btn5=new JButton(new ImageIcon("image/3.png"));//椭圆 JButton btn6=new JButton(new ImageIcon("image/4.png"));//矩形 JButton btn7=new JButton(new ImageIcon("image/7.png"));//调色板//JButton btn8=new JButton("当前颜色"); JButton btn9=new JButton(new ImageIcon("image/14.png"));//橡皮JButton btn10=new JButton(new ImageIcon("image/6.png"));//清除JButton btn11=new JButton(new ImageIcon("image/8.png"));//黑色JButton btn12=new JButton(new ImageIcon("image/9.png"));//红色JButton btn13=new JButton(new ImageIcon("image/10.png"));//绿色JButton btn14=new JButton(new ImageIcon("image/11.png"));//蓝色JButton btn15=new JButton("1");//画笔大小 JButton btn16=new JButton("2"); JButton btn17=new JButton("3"); JButton btn18=new JButton("4"); JButton btn19=new JButton("1");//橡皮大小

java简易画图板

华北科技学院 课程设计说明书 班级: 网络B101 设计题目: 画图板软件开发和设计 评语:_________________________________ _________________________________________ _________________________________________ _________________________________________ _________________________________________ 评阅成绩:____评阅教师:_____ 目录 1 引言 (1)

1.1课程设计选题 (1) 1.2课程设计的目的 (1) 1.3本选题的设计背景 (1) 2 需求分析 (1) 2.1 功能需求 (1) 2.2 系统的开发运行环境 (2) 3 总体设计 (2) 3.1 系统体系结构设计 (2) 3.2系统功能模块及主要类设计 (3) 4 详细设计与实现 (6) 4.1 菜单栏模块 (6) 4.2 文字字型工具栏模块 (7) 4.3 工具栏模块 (8) 4.4 颜色选择面板模块 (10) 4.5 鼠标状态栏模块 (12) 4.6 画图区域以及整体布局模块 (13) 5 小结和展望 (15) 参考文献 (17) 附录 (17) 使用说明书 (17)

1引言 1.1课程设计选题 《画图板软件开发和设计》 1.2课程设计的目的 使学生巩固和加深以Java 语言为基础的面向对象编程技术理论知识的理解,提高实际动手编程能力的培养,掌握以Java为核心的应用软件开发方案,达到能独立阅读、编制和调试一定规模的Java程序的水平。 1.3本选题的设计背景 平时生活中,我们会需要处理一些基本的图像,也有可能需要花一些简单的图像,平时所使用的图形处理工具有 PhotoShop、Windows 画图工具等,其中PhotoShop 是一款非常强大的图形处理工具,Windows 画图工具则是一款较为简单的画图工具,功能较为简单,用Windows画图工具,是一种比较简单与具有代表性的画图工具,虽然功能不够强大,但具有大多图片处理程序所必需的基本功能:铅笔画图、各种数学函数图形、填色、取色、橡皮擦等等。所以这次课程设计我做的就是一个仿照Windows画板的程序。 通过画图板软件开发与设计,更深刻地体会java语言较之其他语言在图形用户界面的优势。熟悉java语言中常用的关于画图的各个类的功能和常用的方法(java图形用户界面中的众多函数与类的关系),并在实验过程中加深对java语言的理解与运用。 2需求分析 2.1 功能需求 对于绘图软件,应具备最基本的绘制直线,矩形框,圆形框,椭圆框等最基本功能,此外,要可以对绘制的图形进行修改;将绘制好的图形进行保存,打开以前保存的图形;在需要的时候,可以绘制实心矩形,实心圆形,实心椭圆等常见的几何图形。可

用java实现的一个简单的画板程序

一个实现简单画板功能的java程序,可以画直线,长方形,椭圆,曲线。 主类 import java.awt.Color; import javax.swing.*; public class painter { public static void main(String [] args){ JPanel jpl = new Board(); JFrame painter =new JFrame(); painter.add(jpl); painter.setBackground(Color.WHITE); painter.setTitle("Painter"); painter.setSize(400,200); painter.setLocationRelativeTo(null); painter.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); painter.setVisible(true); } } 加了选择事件的画板 import java.awt.*; import javax.swing.*; import java.awt.event.*; @SuppressWarnings("serial") public class Choose extends Board{ JRadioButton jrb1=new JRadioButton("Line"); JRadioButton jrb2=new JRadioButton("Rectangle"); JRadioButton jrb3=new JRadioButton("Oval"); JRadioButton jrb4=new JRadioButton("Curve"); JButton jbt = new JButton("Clear"); public Choose(){ JPanel jp1=new JPanel(); jp1.setLayout(new GridLayout(5,1,5,5)); jp1.add(jrb1); jp1.add(jrb2); jp1.add(jrb3); jp1.add(jrb4); jp1.add(jbt); add(jp1); ButtonGroup group = new ButtonGroup(); group.add(jrb1); group.add(jrb2);

JAVA简单画板程序设计实验报告

J A V A简单画板程序设计 实验报告 Document serial number【UU89WT-UU98YT-UU8CB-UUUT-UUT108】

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.画笔颜色

简易地理板图(板画)绘画技巧

简易地理板图(板画)绘画技巧 地理板图又叫地理黑板图。是地理教师在教学过程中,凭借自己的记忆和熟练技巧,用简单的工具(如各色粉笔)和简练的笔法,把复杂的地理事物和现象迅速描绘在黑板上的简略地理图画。主要包括地理略图、形态图、剖面图和过程图等主要类型。其中,后三种又被称为地理板画。 一、学习简易地理板图(板画)绘画的意义 地理板图只取神似,不计细节,旨在抓住特征,突出重点,说明地理问题。在地理教学中具有十分重要的作用。 所有教学技术手段都有自身的价值和存在的意义。我们发展现代教学技术,并不是要抛弃一切传统的教学技术,而是要把现代教学技术和传统教学手段结合起来,努力挖掘所有教学技术手段的使用价值,积极促进各种技术手段之间的协同互补,从而促进教学技术体系整体协调发展。 二、简易地理板图(板画)速绘的基本要求 简易地理板图的绘画具有三要素,即略、像、快。评价地理板图的优劣,主要应从以下几个方面入手: 1.板图形式简略、美观 要求线条流畅、简练、清晰;色彩鲜明、爽目;富于表现性,使人看之悦目。切忌支离破碎,随手乱画,为此必须做好原图的简化工作。(图1、2)2.内容准确,重点突出 讲求地理科学性,明确图上各种地理要素之间的关系;突出所要表达的主要地理事物和现象。 3.作图迅速,与语言同步 要具有熟练的作图技巧,迅速成图;应与教学语言配合协调,同步进行。切忌为作图而作图。 图1 澳大利亚略图图 2 五带的划分 三、简易地理板图(板画)绘画技巧及训练 地理板图的速绘历来都被看成是少数人的天赋,对多数人来说,是可望而不可及的。传统的板图描绘技法大都落笔只画一点、一线,费时多、效率

低,且技法难以掌握。许多教师 往往因画跟不上讲,影响教学进程而放弃。近年来,随着教学改革的不断深入,有关专家已大胆地改革了传统的绘图方法,在作图速度上有很大突破,形成了简单易学的作图技巧。归 纳起来大致可包括绘图工具的制作、笔法的运用和作图要领等。 1.工具的制作 简易板图绘画技巧大大提高了作图的速度,落笔成片,一笔多点、多线,从而使作图速度提高了几倍,乃至几十倍之多。诀窍之一在于多功能彩色粉笔的加工制作。 (1)刻笔 是用小刀或小锯条将粉笔刻成所需要的形状。又可分为纵刻和横刻两种方式(图3- 1.2)。 ①纵刻笔:沿粉笔的长轴方向纵刻成沟痕,成纵刻笔。可用来画河流、交通线等半比例符号。 ②横刻笔:沿粉笔的短轴方向横刻成几个“凹”形沟,相同排列,成横刻笔,可用来画略图轮廓范围符号、地层剖面、云雨、水体、植物、动物等。 (2)排笔 将各色粉笔依次排列,用绳扎紧,做成各种排笔。可用来画各种地层、沼泽、树冠等,功效可提高数倍(图3一3)。 (3)捆笔 将粉笔叠放成捆,用绳扎紧,成捆笔。用来画沙漠、戈壁、泥质海岸、波浪、沉积地层、沼泽、动物身上的圆块状斑纹、植物的累累果实等(图3-4)。 图3 多功能彩色粉笔

Java实现简单的绘图软件

项目效果图: 项目源代码: import java.awt.*; import java.awt.event.*; import java.awt.geom.Ellipse2D; import java.awt.geom.Line2D; import java.awt.geom.Rectangle2D; import java.awt.image.BufferedImage; import java.io.File; import java.io.IOException; import javax.imageio.ImageIO; import javax.swing.*; import javax.swing.filechooser.FileNameExtensionFilter; /* author: 蒋冰*/ public class ImageDraw { private int typeFlag = 1; private int endFlag = 1; private int strokeTemp = 1; private Color color = Color.black;

private BasicStroke stroke = new BasicStroke(); private float pre_x = 0; private float pre_y = 0; private float start_x = 0; private float start_y = 0; private float start_X = 0; private float start_Y = 0; private float end_x = 0; private float end_y = 0; private float width = 0; private float height = 0; private final int AREA_WIDTH = 700; private final int AREA_HEIGHT = 400; private Line2D.Float line; private Rectangle2D.Float rect; private Ellipse2D.Float ellipse; private File imageFile; BufferedImage image = new BufferedImage(AREA_WIDTH , AREA_HEIGHT , BufferedImage.TYPE_INT_RGB); Graphics2D g2 = (Graphics2D) image.getGraphics(); private JFrame frame = new JFrame("简单手绘程序"); private DrawPanel drawArea = new DrawPanel(); JButton buttonShowColor = new JButton(""); public void init(){ g2.fillRect(0 , 0 ,AREA_WIDTH , AREA_HEIGHT); g2.setColor(Color.black); drawArea.setPreferredSize(new Dimension(AREA_WIDTH , AREA_HEIGHT)); drawArea.addMouseMotionListener(new MouseMotionAdapter() { public void mouseDragged(MouseEvent e) { do_mouseDragged(e); } }); drawArea.addMouseListener(new MouseAdapter() { public void mousePressed(MouseEvent e1){ do_mousePressed(e1);

操作简易的化学画图软件(DOC)复习过程

操作简易的化学画图软件 ----ChemWindow 一、分子式、简式的书写: ①按下键盘上的Caps Lock 键,点击键后再点击Label键,在文档中输入H2SO4 即可得到:;同理可写出有机分子式,在必要的时候加上括号:如输入CH3(CH2)3CH3时候可得到: ②检查:运行“Other”菜单下的“Check Chemistry”和“Check Spelling”检查结构式,保证正确性。例如:写一个错误的戊烷的分子式:,选中这个分子式,运行Check Chemistry(或按下F10键),弹出以下对话框: 语句“The valence is not correct.”意思是:化合价不正确。若分子式用于特殊场合,点击“Ignore”或“Ignore All”按钮可以忽略错误,即保持错误的状态。 二、离子式的书写: 数字在英文字母之前或之后输入,系统默认为下标;但数字在“-”或“+”之后为上标;先输入数字,后输入“-”或“+”,则数字为下标。如硫离子的书写: 输入“SO42-”显示为“”,这显然不是我们需要的,正确的操作是先输入“SO4-2-”后再删除前一个“-”即可得到。 切换到中文输入法也可以输入中文,用按钮可设置上下标:如 ①在大写状态下,点击按钮,写出硫酸的分子式: ②当光标停在下标“4”时,点击下标按钮,输入(浓) “Caption”工具是另外一种文字输入工具,但不能识别上下标,只要用于中文标题或者大写字母的输入。 三、其他 1.高聚物先写出高聚物的单体,再单击中括号,在文档中拖放出一个 中括号,适当缩放,在右下角的方框中填入“n”最后将单体放入:如聚氯乙烯的书写:

JAVA实验报告 简单绘图程序

实验三绘制图形 一、实验目的 学会JButton的使用,能进行JButton的基本操作,能使用JButton构造一个图形界面框架通过实验熟悉swing图形用户界面程序设计熟悉java中的事件处理模型,每个事件动作代表的意义进一步提高编程能力,学会独立思考,学会上网查找资料决问题。 二、实验内容 设计一个程序,该程序能够绘制基本的图形(包括圆形、矩形、直线等);要求有一个简单易操作的用户界面(包括菜单、按钮等组件)。编写的程序要求能够实现保存和读取的功能。 三、实验代码 Main.java import ; import ; import ; import import import import winpaint.WinToolBar; import winpaint.windowsPaint; public class Main { /** * @param args */ public static void main(String[] args) { // TODO Auto-generated method stub JPanel paintWin = new windowsPaint("画图"); paintWin.setBounds(0, 30, 1000, 1000); paintWin.setLayout(null); paintWin.setVisible(true); JToolBar tool = new WinToolBar((windowsPaint)paintWin); tool.setBounds(0, 0, 1000, 30); tool.setVisible(true); JFrame frame = new JFrame();

简易地理板图(板画)绘画技巧资料

简易地理板图(板画) 绘画技巧

简易地理板图(板画)绘画技巧 地理板图又叫地理黑板图。是地理教师在教学过程中,凭借自己的记忆和熟练技巧,用简单的工具(如各色粉笔)和简练的笔法,把复杂的地理事物和现象迅速描绘在黑板上的简略地理图画。主要包括地理略图、形态图、剖面图和过程图等主要类型。其中,后三种又被称为地理板画。 一、学习简易地理板图(板画)绘画的意义 地理板图只取神似,不计细节,旨在抓住特征,突出重点,说明地理问题。在地理教学中具有十分重要的作用。所有教学技术手段都有自身的价值和存在的意义。我们发展现代教学技术,并不是要抛弃一切传统的教学技术,而是要把现代教学技术和传统教学手段结合起来,努力挖掘所有教学技术手段的使用价值,积极促进各种技术手段之间的协同互补,从而促进教学技术体系整体协调发展。 二、简易地理板图(板画)速绘的基本要求 简易地理板图的绘画具有三要素,即略、像、快。评价地理板图的优劣,主要应从以下几个方面入手: 1.板图形式简略、美观 要求线条流畅、简练、清晰;色彩鲜明、爽目;富于表现性,使人看之悦目。切忌支离破碎,随手乱画,为此必须做好原图的简化工作。(图1、2) 2.内容准确,重点突出 讲求地理科学性,明确图上各种地理要素之间的关系;突出所要表达的主要地理事物和现象。 3.作图迅速,与语言同步

要具有熟练的作图技巧,迅速成图;应与教语言配合协调,同步进行。切忌为 作图而作图。 图1 澳大利亚略图图 2 五带的划分 三、简易地理板图(板画)绘画技巧及训练 地理板图的速绘历来都被看成是少数人的天赋,对多数人来说,是可望而不可及的。传统的板图描绘技法大都落笔只画一点、一线,费时多、效率低,且技法难以掌握。许多教师往往因画跟不上讲,影响教学进程而放弃。近年来,随着教学改革的不断深入,有关专家已大胆地改革了传统的绘图方法,在作图速度上有很大突破,形成了简单易学的作图技巧。归纳起来大致可包括绘图工具的制作、笔法的运用和作图要领等。 1.工具的制作 简易板图绘画技巧大大提高了作图的速度,落笔成片,一笔多点、多线,从而使作图速度提高了几倍,乃至几十倍之多。诀窍之一在于多功能彩色粉笔的加工制作。 (1)刻笔是用小刀或小锯条将粉笔刻成所需要的形状。又可分为纵刻和横刻两种 方式(图3-1.2)。 ①纵刻笔:沿粉笔的长轴方向纵刻成沟痕,成纵刻笔。可用来画河流、交通线等半比例符号。

Java画图板程序设计报告

西安科技大学Java语言课程设计报告 ¥

题目:画图板应用程序开发 & 班级: 学号: 姓名: 2010年 12 月 目录 1 设计题目及具体要求 (3) · 2 总体设计 (6) 3 详细设计与实现 (4) 4 系统测试 (11) 5 设计小结 (31) 参考文献 $

: 1、设计题目及具体要求 题目需求 ? 1. 设计题目:小画图板的开发。 2. 重点分析 本软件的重难点为主窗体的设计、菜单栏和工具栏的设计、事件响应的处理、画图的基本功能的实现。 3. 实现功能

1.新建一个空白图形文件:用于绘制新的图形。 2.打开或保存一个图形文件,便于对图形文件的管理。 3.绘制一些基本的图形组件:直线,矩形,实心矩形,椭圆,实心椭圆,圆,实心圆,圆角矩形,实心圆角矩形等。 4.用鼠标在绘图板上单击拖动进行随笔花。 5.` 6.橡皮擦:可以将已绘制的图形擦掉。 7.添加文字:可以在绘图区域内添加文字。 8.选择文字的字体:通过一个下拉式的选择条,可以选中所需要的字体。本程序中包括:宋体,隶书,华文彩云,仿宋-GB2312,华文行楷,Times New Roman,Serif,Monospaced,SonsSerif,Garamond。当然,在下面的程序分析中可以看到,由于设置了字体选择数组,使得可以随意添加系统支持的任何字体。大大方便和简化了程序设计。 9.选择文字的字体风格:通过两个复选框按钮,可以选择需要的字体风格,包括:粗体,斜体,用同时选中两者,只选择其中一种或两者都不选中3种选择方式。10.设置画笔的颜色:可以选择当前绘制图形的画笔颜色,让图形更加丰富多彩,生动活泼。 10. 设置画笔的粗细:该选项在作用于基本图形组件和文字时,它的效果是不同的。 当作用于绘制图形组建时,它的作用是改变画笔绘制线条的粗细;当作用于文字时,它的作用是改变文字的大小。 ;

简易画图板的设计与实现

专业课程设计 (2011/2012学年第2学期) 题目一:简易画图板的设计与实现 专业计算机通信 学生姓名韩亮 班级学号09002736 指导教师王海艳 指导单位计算机学院·计算机科学与技术系日期2012年6月20日

教 师 评 语 教师签名: 年月日

成 绩 评 定 备 注 一、课题名称 设计题目1:简易画图板的设计与实现 二、课题内容和要求 利用MFC完成画图板的基本功能。此程序将实现简单的绘图功能,包括点、直线、矩形、椭圆、扇形和连续线的绘制。并且能实现绘图的控制,包括线宽、线型和颜色的设置,图形的保存和打开以及笔刷的使用。 三、需求分析 1) 在单文档菜单中,在菜单行中可插入一个菜单项,命名为绘图,在下拉菜单中可分别设置绘制的图形形状,如直线、矩形及椭圆,线宽选项,有1-5可供选择,还可以设置线色以及填充色,通过弹出的颜色对话框选择需要的颜色,如果不选择线宽、线色以及填充色,则按默认的画笔,画刷来绘制选择的图形。 2) 选择好图形后,通过鼠标可以绘制出相应的直线,矩形或椭圆,鼠标的按下确定图形的起点,鼠标的拖动则确定了图形的终点,即通过鼠标的拖动来决定图形的大小,当鼠标弹起,此图形则绘制完毕。 3) 增添工具栏,设置绘制的图形形状,线色以及填充色,可更方便地选择相应的功能。

四、概要设计 1) 对需要用到的变量进行初始化。 2) 选择相应的图形之后就响应相应的消息处理函数,给shape赋对应的值。选择不同的线宽,线色与填充色,即可改变画笔或画刷的属性。 3) 鼠标的按下响应函数OnLButtonDown(),捕捉鼠标当前位置得到起点的坐标,鼠标的拖动响函数OnMouseMove()改变终点的坐标,鼠标的弹起响应OnLButtonUp(),确定终点坐标,刷新,得到绘制图形。 4) 选择图形或其它属性,可进行下一次绘制。 开始 定义并初始化变shape 线色m_ncolor 填充 色m_fcolor 画笔 pen画刷brush绘图起 点opoint绘图终点 选择线宽 改变画笔属性默认值(w=1) 改变画刷属性 默认值(黑色) 默认值(黑色)选择填充 改变画笔属性 选择线色

简单的作图软件有哪些

简单的作图软件有哪些 导语: 对于绘图大师,作图软件可以帮助我们绘制出理想的图案;但是对于新手而言,这恐怕比的登天还难。其实用简单的作图软件,就能帮助新手制作出专业的图像,我们一起来了解一下。 简单的作图软件有哪些? 一般都知道的作图软件有PS、CAD、AI、CDR等,主要是设计方面的绘图。也都知道这类软件都比较专业,新手难以上手。那么一般新手要用什么软件作图呢?有没有操作简单又可以制出专业图表的软件?答案是有。亿图图示,专业的跨平台全类型绘图软件,解决你的难题。 立即获取绘图软件:https://www.360docs.net/doc/4b5445172.html,/download-edrawmax.php 亿图图示软件特色: 1、丰富的背景样式:几十套背景样式供用户使用,且只需拖拽样式到画布即可替换背景。 2、无限量的图框:可以在画布中添加无限量的图框,大大满足用户的创作需求。 3、页面适应到绘画:画布可无限量之大,一键点击“页面适应到绘图”,软件即可自动剪切画布至绘图区域。

4、免费更新提醒:当软件有新的版本或模板更新时,软件可提醒用户进行更新操作。 5、软件咨询服务:在绘图过程中遇到操作难题,可在线与客服人员联系,并解决问题。 非常适合新手的一款绘图软件-----亿图图示 亿图图示是一款跨平台的全类型图形图表设计软件。使用它可以非常容易地创建有专业水准的流程图、组织结构图、网络图、商业展示、建筑平面图、思维导图、科学插画、时尚设计、UML图、工作流程图、程序结构图、网页设计图、电气工程图、方向地图以及更多图示图表。 现在有很多绘图软件功能虽然强大,操作确实很麻烦,不如选择一款简单方便的软件。亿图作为国产软件,不仅软件在设计上简单大气,更多是还重视用户体验度。内置的电路图符号库也十分丰富,画图是直接将符号库中的符号拖到画布中就可以了,无需学习就可以直接上手。 亿图符号库(流程图符号)

画图画板设计模式课程设计任务书

长沙学院课程设计说明书 题目设计模式课程设计 系(部) 数学与计算机科学系 专业(班级) 数媒2班 姓名胡辉衡 学号B20140304401 指导教师朱建凯 起止日期2016年12月19日

课程设计任务书 课程名称:设计模式课程设计 设计题目:基于设计模式的绘图程序 已知技术参数和设计要求: 1.问题描述(功能要求): 1.需求分析 该系统是一个画图程序,我们要用设计模式的思想来设计系统结构,然后实现基本图形的绘制功能。 1.1 设计模式要求 至少在其中运用 3 种模式,其中涉及到的模式有装饰模式、策略模式、桥梁模式三种。 1.2 画图基本要求 能实现基本图形的绘制功能 1.3 画图高级要求 实现图形的操作(如选取、移动、放大、缩小、改变颜色、改变线形等)和持久化(利用文件或利用数据库)。 1.4 参考界面

图1 参考效果图1 图2 参考效果图2 2. 运行环境要求: Windows操作系统;

Eclipse 3. 技术要求: 给出至少3种设计模式,要求具体说明使用每种设计模式的动机,画出类图,并代码实现,然后评价该设计模式的优缺点。 设计工作量: 2周 工作计划: (1) 2014级软件工程 4课时:讲授 32课时:上机、调试。计算机系机房 4课时:答辩。计算机系机房。 指导教师签名:日期: 教研室主任签名:日期: 系主任签名:日期:

长沙学院课程设计鉴定表

目录 第1章系统需求 (8) 1.1系统总需求 (8) 1.2功能需求 (8) 第3章系统设计 (9) 3.1系统总功能模块设计 (9) 3.2子功能模块设计 (9) 3.2.1构建基本图形 (9) 3.2.2装饰模式组合图形 (10) 3.2.3桥接模式修饰图形颜色线条粗细 (10) 第4章系统实现 (11) 4.1简单工厂模式绘制基本图形 (11) 4.1.1装饰模式图形组合 (13) 4.1.2桥接模式改变粗细绘制图形 (14) 第5章系统测试 (15) 5.1测试目的 (15) 5.2测试手段 (15) 5.3测试用例 (15) 5.3.1登陆界面测试 (15) 结论 (16) 参考文献 (17) 结束语 (18) 附录 (19)

c++简单画图程序

目录 1. 基本功能描述 (1) 2. 设计思路 (1) 3. 软件设计 (4) 设计步骤 (4) 界面设计 (6) 关键功能的实现 (7) 4. 结论与心得体会 (8) 5. 思考题 (8) 6. 附录 (10) 调试报告 (10) 测试结果 (10) 关键源代码 (10)

简单画图程序 1. 基本功能描述 简单画图程序实现了常见图形的绘制、图形属性的设置和图形数据的暂存等功能。该程序的具体功能模块包括以下几项: 1) 图形绘制模块。该模块实现直线段、椭圆、矩形等图形的绘制功能。在鼠标移动的过程中能实时显示当前绘制的图形。 2) 图形属性设置模块。该模块实现绘图线条的线宽,线色,图形填充色等属性设置功能。 3) 图形数据暂存模块。该模块实现直线段、椭圆、矩形等图形数据暂存功能,涉及图形的坐标、线宽、线色、填充色等数据。 2. 设计思路 1) 对需要用到的变量进行初始化。 2) 选择相应的图形之后就响应相应的消息处理函数,给shape赋对应的值。选择不同的线宽,线色与填充色,即可改变画笔或画刷的属性。 3) 鼠标的按下响应函数OnLButtonDown(),捕捉鼠标当前位置得到起点的坐标,鼠标的拖动响函数OnMouseMove()改变终点的坐标,鼠标的弹起响应OnLButtonUp(),确定终点坐标,刷新,得到绘制图形。 4) 选择图形或其它属性,可进行下一次绘制。 5) 程序的流程图如下:

图1 程序流程图 3. 软件设计 设计步骤 1) 创建单文档 创建一个MFC AppWizard[exe]工程,命名为“LiYuJing”,如图1所示,并创建单文

相关文档
最新文档