文档库 最新最全的文档下载
当前位置:文档库 › Java绘图

Java绘图

Java绘图
Java绘图

Java为我们提供了一整套可用于窗口环境的程序包,即AWT:Java.awt(Java Abstract Window Toolkit Package, Java抽象窗口工具包),就是使用于窗口环境的程序包。它提供了一套标准的图形用户界面(GUI)的元素,例如:按钮、列表、菜单、文本框等。它还包括容器(例如窗口和菜单条)和更高级的组件(例如用于打开和保存文件的对话框)等,Java.awt包是实现Java强大人机交互功能的有力工具。AWT包实际上由Java.awt.image (AWT image Package, AWT图形包)和Java.awt.peer(AWT peer package, AWT对等体包)两个包组成。前者提供了用于高级图形处理的类和接口,用于产生和处理图形与色彩的程序会经常用到该包;后者包含了一些接口,主要用于联系AWT组件与和它们系统相关的窗口实现。

一. 绘图过程

Component是一个抽象类,是许多AWT类的父类,它定义了在各种窗口对象中最基本,同时也是最重要的方法和性质。我们在使用AWT来设计程序的时候,如果要使窗口对象改变,如改变背景颜色、改变窗口对象的大小、重画窗口对象等等操作时,一般都是通过调用类Component中定义的方法来完成的。Component(组件)是AWT概念中,窗口系统所显示的各种对象的统称。每种组件都各有各的用处,例如我们经常在屏幕上用到的按钮(button)、列表框(List)等等, Component(https://www.wendangku.net/doc/c52512944.html,ponent)是代表这些组件的最基本的类。而除了菜单以外,所有代表窗口对象的类,都是类Component的子孙类。

l 在绘图过程中要用到Component类的方法:repaint()、update()、paint()

⑴方法: public void repaint()

功能:重画当前组件。此方法将在尽可能短的时间里调用当前组件的update()。

⑵方法:public void update(Graphics g)

功能:更新当前组件

其中:参数g----图形对象

⑶方法:public void paint(Graphics g)

功能:重画当前组件

其中:参数g-----被重画的图新对象

l 在绘图过程中要用到applet类的方法:

⑴方法:public void resize(int width,int height)

功能:调整当前applet的大小。

其中:参数width----新的宽度、参数height-----新的高度

⑵方法:public void init()

功能:此方法由浏览器或applet调用,用来通知applet已经被载入到系统中。对于继承类applet的子类,可以通过重写本方法使applet完成初始化工作,包括建立所需的对象、设置初始状态、装载图形或者字体、设置参数等。

§2.文本处理

一.坐标系统

和计算机上其他的编程语言和绘图程序一样,在绘图的平面区域上我们想象有一个二维坐标,通过它就可以把绘图和写字位置表示清楚。在Java中坐标原点(0,0)位于整个绘图平面的左上角,从原点(0,0)出发向右为x轴,

向下为y轴。所有的坐标都必须是正整数,不能带有小数,一个单位代表一个像素。所以要把一个图像或字放在屏幕的一个指定位置,只要指定出它的x和y坐标就可以了。

二.字形的设置和改变

在Java字型设置中类Font是很重要的。如果要在Java小应用程序上输出文字,在我们要确定显示的字型时,就要用到类Font来决定显示文字时的字型。

1.字型的设置

要产生类Font的对象实体,其使用的构造方法是:

publuc Font(String fontName,int style,int size) 。

其中:参数fontName表示所要选的字体的名称,例如英文的有:“TimesRoman”、“Courier”等等,中文的有:“宋体”等等;

参数style为字体的表现形式,有正常字体(PLAIN)、粗体(BOLD)等等;

参数size是用来指定字体的大小的。

功能:根据参数提供的字体名称、形式、字体大小创建一个新的字体对象。

2.显示字形改变字型

显示方法可以用Graphics类中的下列方法:

⑴方法drawString(String str,int x,int y);此方法使用当前图形对象的字体和颜色输出字符串str,其中

参数str表示被输出的字符串

参数x表示x轴坐标

参数y表示y轴坐标

⑵drawChars(char data[],int offset,int length, int x,int y);这种方法使用当前图形对象的字体和颜色输出字符数组data[]中的指定部分。其中:

参数data表示被输出的字符数组

参数offset表示起始下标

参数length表示输出字节数

参数x表示x轴坐标

参数y表示y轴坐标

⑶drawBytes(byte data[],int offset,int length, int x,int y);这种方法使用当前图形对象的字体和颜色输出字节数组data中的指定部分。其中:

参数data表示被输出的字节数组

参数offset表示起始下标

参数length表示输出字节数

参数x表示x轴坐标

参数y表示y轴坐标

⑷setFont(Font font);设置图形对象的当前字体为参数指定的字体font。

参数font -----字体

⑸getFont(); 返回当前图形对象的字体。

例10.1

import java.awt.*;

import java.applet.*;

import java.awt.Font;

public class mj1 extends Applet{

Font zt1=new Font ("TimesRoman",Font.PLAIN,20);

Font zt2=new Font ("TimesRoman",Font.BOLD,30);

Font zt3=new Font ("TimesRoman",Font.ITALIC,40);

Font zt4=new Font ("TimesRoman",Font.BOLD+Font.ITALIC,40);

Font zt5=new Font ("Courier",Font.PLAIN,50);

String pmz1="Java FAQ";

public void paint (Graphics g){

g.setFont (zt1);

g.drawString (pmz1,10,20);

g.setFont (zt2);

g.drawString (pmz1,10,55);

g.setFont (zt3);

g.drawString (pmz1,10,110);

g.setFont (zt4);

g.drawString (pmz1,10,170);

g.setFont (zt5);

g.drawString (pmz1,10,230);

}

}

三.颜色的设置

用Color类,在Java中Color类将颜色按照RGB格式进行封装。RGB格式中,红蓝绿三原色的取值范围都是0~255。若某种颜色取值为0,则表示该颜色不起任何作用;若取值为255,则表示起最大作用。如果将三种颜色进行叠加就可以生成一种新的颜色,合成的RGB颜色的值为“000000”表示黑色,“ffffff”表示白色。首先调用Color 的构造函数,产生一个Color对象,再用Graphics类里的setColor把它设置到Graphics对象上。

方法:setColor(Color c)

功能:设置图形对象的颜色为参数所指定的颜色

Color类的构造方法:

Color(int,int,int);

功能:根据指定0~255之间的红、绿、蓝(RGB)的值生成新的颜色。这样我们就可以创造出自己想要的颜色。Color中已经定义好的各种颜色常数我们也可以方便地直接使用:

red 红 green 绿 blue 蓝 white 白 black 黑 yellow 黄

pink 粉 cyan 青 orange 橙 gray 灰 darkGray 深灰 lightGray 浅灰例10.2

import java.awt.*;

import java.awt.Font;

import java.applet.*;

public class mj1 extends Applet

{

Font zt1=new Font ("TimesRoman",Font.PLAIN,20);

Font zt2=new Font ("TimesRoman",Font.BOLD,30);

Font zt3=new Font ("TimesRoman",Font.ITALIC,40);

Font zt4=new Font ("TimesRoman",Font.BOLD+Font.ITALIC,40); Font zt5=new Font ("Courier",Font.PLAIN,50);

String pmz1="Java FAQ";

public void paint (Graphics g)

{

g.setColor(Color.orange);

g.setFont (zt1);

g.drawString (pmz1,10,20);

g.setFont (zt2);

g.drawString (pmz1,10,55);

g.setColor(Color.red);

g.setFont (zt3);

g.drawString (pmz1,10,110);

g.setFont (zt4);

g.drawString (pmz1,10,170);

g.setColor(Color.blue);

g.setFont (zt5);

g.drawString (pmz1,10,230);

}

}

例10.3利用两种反差比较大的颜色,使字体看起来具有立体感。

import java.awt.*;

import java.awt.Font;

import java.applet.*;

public class mj1 extends java.applet.Applet{

public void init(){

resize(300,150);

}

public void paint (Graphics g){

Font ltz =new Font ("TimesRoman",Font.BOLD+Font.ITALIC,40);

g.setFont(ltz);

g.setColor(Color.red);

g.drawString("Java FAQ",45,80);

g.setColor(Color.yellow);

g.drawString("Java FAQ",47,77);

}

}

§3.制作几何图形

Graphics类提供多种几何图形功能,通过它的方法可以实现画线、几何图形等。

一. 画线

方法: drawLine(int x1, y1,int x2,int y2),

功能:在(x1,y1)和(x2,y2)这两个坐标之间画出一条直线,其中:

参数x1表示第1个点的x轴坐标

参数y1表示第1个点y轴坐标

参数x2表示第2个点x轴坐标

参数y2表示第2个点y轴坐标

例1.

import java.awt.Graphics;

import java.applet.*;

public class mj1 extends Applet{

public void paint(Graphics g){

g.drawLine(20,30,150,100);

g.drawLine(150,50,10,100);

g.drawLine(10,130,190,130);

}

}

二.绘制普通矩形

Java提供了3种矩形的绘制方式,我们先看普通型:

darwRect(int x,int y,int width,int height),它的功能是画出一个矩形,其中:参数x代表矩形左上角的x坐标

参数y代表矩形左上角的y坐标

参数width表示矩形的宽度

参数height表示矩形的长高度

例2.

import java.awt.*;

import java.awt.Font;

import java.applet.*;

public class mj1 extends Applet{

Font zt4=new Font ("宋体",Font.BOLD,20);

String pmz4="矩形";

public void paint (Graphics g){

g.drawRect(20,20,150,100);

g.setColor(Color.red);

g.setFont (zt4);

g.drawString (pmz4,45,50);

}

}

方法:fillRect(int x,int y,int width,int height),

功能:使用当前图形对象的颜色填充参数指定的矩形,其中:参数x为x轴坐标

参数y为y轴坐标

参数width为矩形的宽度

参数height为矩形的高度

例3.

import java.awt.*;

import java.awt.Font;

import java.applet.*;

public class mj1 extends Applet{

Font zt4=new Font ("TimesRoman",Font.BOLD,20);

String pmz4="Java FAQ";

public void paint (Graphics g){

g.setColor(Color.lightGray);

g.fillRect(20,20,150,100);

g.setColor(Color.red);

g.setFont (zt4);

g.drawString (pmz4,45,50);

}

}

三.绘制立体矩形

方法:draw3DRect(int x,int y,int width,int height,boolean raised);和fill3DRect(int x,int y,int width,int height,boolean raised);

方法draw3DRect(int x,int y,int width,int height,boolean raised):其作用为绘制一个突出的三维立体矩形,其中:参数x为x轴坐标

参数y为y轴坐标

参数width为矩形的宽度

参数height为矩形的高度

参数raised表示立体矩形的状态,raised为true,则立体矩形为凸起状态;raised为false,则立体矩形为凹下状态。

方法draw3DRect(int x,int y,int width,int height,boolean raised);其作用为绘制一个突出的三维立体矩形并使用当前图形对象的颜色对其进行填充,其中:

参数x为x轴坐标

参数y为y轴坐标

参数width为矩形的宽度

参数height为矩形的高度

参数raised表示立体矩形的状态,raised为true,则立体矩形为凸起状态;raised为false,则立体矩形为凹下状态。

例4.

import java.awt.*;

import java.awt.Font;

import java.applet.*;

public class mj1 extends Applet{

public void init(){

resize(350,260);

}

public void paint (Graphics g){

g.setColor(Color.lightGray);

g.fill3DRect(20,20,150,100,true);

g.fill3DRect(180,20,150,100,false);

g.draw3DRect(20,140,150,100,true);

g.draw3DRect(180,140,150,100,false);

}

}

四.绘制圆角矩形

方法:drawRoundRect(int x,int y,int width,int height,int arcWidth,int arcHeight)和fillRoundRect(int x,int y,int width,int height,int arcWidth,int arcHeight)。

方法drawRoundRect(int x,int y,int width,int height,int arcWidth,int arcHeight)其作用为绘制一个圆角矩形,其中:参数x为x轴坐标

参数y为y轴坐标

参数width为矩形的宽度

参数height为矩形的高度

参数arcWidth为圆弧的横向直径

参数arcHeight为圆弧的纵向直径

方法fillRoundRect(int x,int y,int width,int height,int arcWidth,int arcHeight)其作用为绘制一个圆角矩形并使用当前图形对象的颜色对其进行填充,其中:

参数x为x轴坐标

参数y为y轴坐标

参数width为矩形的宽度

参数height为矩形的高度

参数arcWidth为圆弧的横向直径

参数arcHeight为圆弧的纵向直径

例:

import java.awt.*;

import java.awt.Font;

import java.applet.*;

public class mj1 extends Applet{

public void init() {

resize(480,280);

}

public void paint (Graphics g){

g.setColor(Color.gray);

g.fillRoundRect(20,20,100,80,40,40);

g.drawRoundRect(180,20,100,80,80,80);

g.fillRoundRect(350,50,80,20,70,70);

g.drawRoundRect(25,140,80,80,80,80);

g.fillRoundRect(160,140,130,60,50,50);

g.drawRoundRect(350,130,70,120,50,10);

} }

JAVA-画图工具全解

摘要 随着科学技术的不断提高,计算机科学日渐成熟,其强大的功能已为人们深刻认识,它已进入人类社会的各个领域并发挥着越来越重要的作用。 JAVA是一门很优秀的编程语言,具有面向对象、与平台无关、安全、稳定和多线程等特点,是目前软件设计中极为健壮的编程语言。JAVA不仅可以用来开发大型的应用程序。而且特别适合Internet的应用开发。JAVA确实具备“一次写成,处处运行”的特点,JAVA以成为网络时代最重要的编程语言之一。本报告中介绍了用JAVA语言实现画笔系统的全部过程。 本次课程设计是配合JAVA程序设计课程,帮助我们深入学习掌握JAVA语言,熟练运用这个工具来编写的。通过课程设计各个项目的综合训练,培养学生实际分析问题、编程和动手能力、提高学生的综合素质。本课程设计尝试使用一些较生动的示例和设计项目,激发学生学习兴趣,引导学生主动学习,正确理解、接受需要重点掌握的知识点,为参加项目开发及更深入学习做好准备。 本次课程设计主要是用JAVA实现画笔系统,其系统主要完成以下功能:设计一个画图程序,能够实现画笔、画直线、画圆形、画矩形、修改该画笔的大小以及颜色。该画图程序还需具有橡皮擦功能以及清空整个画面的功能 关键词:画图工具,JA V A

目录 摘要 (1) 目录 (2) 1.绪论 (3) 2. 开发环境介绍 (4) 3.需求分析 (5) 3.1总体目标..................................... 错误!未定义书签。 3.2要实现的功能 (7) 4.概要设计 (8) 4.1设计准备 (8) 4.2需要用到的类 (8) 5.详细设计 (9) 5.5类的设计 (9) 5.2类的方法设计 (9) 6.测试数据及运行结果 (8) 7.总结 (15) 8.参考文献 (15) 9.源程序 (15)

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语言的特点有:面向对象、跨平台、安全性、多线程和图形功能强。

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); // 设置框

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实现简单的绘图软件

项目效果图: 项目源代码: 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);

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();

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. 设置画笔的粗细:该选项在作用于基本图形组件和文字时,它的效果是不同的。 当作用于绘制图形组建时,它的作用是改变画笔绘制线条的粗细;当作用于文字时,它的作用是改变文字的大小。 ;

java绘图坐标体系

java绘图坐标体系 像素:计算机屏幕上显示的内容都是屏幕上的每一个像素组成。例如:计算机显示器的分辨率是800*600,表示计算机屏幕上的每一行由800个点组成,共有600行,整个计算机屏幕共有480000个像素。像素是一个密度单位,而厘米是长度单位,两者无法比较。 绘图的原理Part1 Component类提供了两个和绘图相关最重要的方法: ①:paint(Graphics g):绘制组件的外观 注意点:当组件第一次在屏幕显示的时候,程序会自动的调用paint()方法来绘制组件。 在以下情况会自动调用paint()方法: 一:窗口最小化,再最大化。 二:窗口的大小发生变化(注意是大小变化,而不是移动窗口) 三:repaint函数被调用 ②:repaint():刷新组件的外观 注意点:起到动感的作用。 Graphics 类: Graphics 可以理解就是画笔,为我们提供各种绘制图形的方法: ①:画直线drawLine(int x1,int y1,int x2,int y2); ②:画矩形边框drawRect(intx,inty,intwidth,int height); ③:画椭圆边框drawOval(intx,inty,intwidth,int height); ④:填充矩形fillRect(intx,inty,intwidth,int height);

⑤:填充椭圆 fillOval(intx,inty,intwidth,int height); ⑥:画图片 drawImage(Image img,intx,int y,.....); ⑦:画字符串drawString(String str,intx,int y); ⑧:设置画笔的字体setFont(Font font); ⑨:设置画笔的颜色setColor(Color c); 举例如下: /** * java绘图原理 * 不能再JFrame上画图,但是可以在JPanel上画图 */ package day0218; importjava.awt.Color; import java.awt.Font; import java.awt.Graphics; import java.awt.Image; import java.awt.Panel; import java.awt.Toolkit; importjavax.swing.JFrame; import javax.swing.JPanel; public class Demo18_1 extends JFrame { MyPanelmp = null; public Demo18_1() { mp=new MyPanel(); this.add(mp);

课程设计-JAVA-画板-模拟画图工具

目录 1 课题介绍 (1) 1.1 课程设计目的 (1) 1.2 课程设计要求 (1) 1.3 课程设计主要知识点 (1) 2 总体设计 (2) 2.1 画板界面设计图 (2) 2.2 模块概述 (2) 2.2.1 文件操作 (2) 2.2.2 图形绘制 (2) 3 详细设计与实现 (4) 3.1 框架类DrawGraphic (4) 3.1.1菜单 (4) 3.1.2工具栏 (6) 3.1.3画图区域 (7) 3.2 基本图形类 (10) 3.2.1 父类Drawings (10) 3.2.2 子类(只列出部分) (10) 4 设计中的难点 (12) 4.1多态与动态绑定 (12) 4.2重绘的理解 (12) 4.3文件的新建、打开和保存 (12) 5 运行测试 (13) 6 总结 (15) 参考文献 (16)

模拟画图 1 1 课题介绍 1.1 课程设计目的 课程设计题目:模拟画图 要求设计一个程序,模拟Windows中的画图程序,实现图形图像的编辑,修改,保存等功能。 1.2 课程设计要求 (1)程序中必须包括“新建”、“打开”、“保存”,用户可以选择,实现对文件的操作; (2)画图板的绘图按钮用来画出不同的图形,包括实心图形和空心的图形; (3)可以对线条的颜色和粗细进行设置,也可以对填充图形的颜色进行设置和更改。 1.3 课程设计主要知识点 (1)框架类DrawGraphic继承了Swing类库中JFrame,并且用到JButton,JLabel,JPanel,等Swing类库中的组件进行窗体设计; (2)选择一个文件,用到组件JFileChooser; (3)选择颜色,用到组件JColorChooser; (4)弹出标准对话框,用到组件JOptionPane; (5)在单击绘图按钮时,所触发的动作通过方法addActionListener和ActionListener接口的actionPerformed方法共同实现; (6)MouseAdapter和MouseMotionAdapter用来完成鼠标各种事件的相应操作,包括单击、移动、拖拽等; (7)在界面设计的时候结合BorderLayout和GridLayout两种布局格式; (8)在添加监听器的时候有用到内部匿名类和内部类,所以要熟悉它们的构造方法和使用方法,从中体会持有对方引用的这一设计思想。 (9)在图形绘制的时候,用到Graphics类,其揭示了所有图形系统几乎都采用的一种机制,就是如何在窗口上画出一些图形来,当窗口构造出来的时候里面有一支画笔,即Graphics的一个对象,当窗口调用paint方法的时候,系统会把画笔自动传递给它,拿到画笔,重写paint方法就实现了在窗口上绘制基本图形。

JAVA设计绘图软件(附源代码)

目录 第一章选题简介 (3) 第二章需求分析 (4) 1.系统要实现的目标分析 (4) 2.对输入输出数据及流程的分析 (4) 3.开发环境及运行环境分析 (5) 第三章系统设计 (6) 1. 系统功能模块设计 (6) 2. 类设计 (7) 3. 界面设计 (8) 第四章测试 (10) 1.测试用例及结果 (10) 2.程序功能的评价 (11) 第五章总结 (12) 1.遇到的问题及解决的方法 (12) 2.开发体会及自评成绩 (12) 参考文献 (13)

第一章选题简介 随着科学技术的不断提高,计算机科学日渐成熟,其强大的功能已为人们深刻认识,它已进入人类社会的各个领域并发挥着越来越重要的作用。 JAVA是一门很优秀的编程语言,具有面向对象、与平台无关、安全、稳定和多线程等特点,是目前软件设计中极为健壮的编程语言。JAVA不仅可以用来开发大型的应用程序。而且特别适合Internet的应用开发。JAVA确实具备“一次写成,处处运行”的特点,JAVA以成为网络时代最重要的编程语言之一。 本次课程设计主要是用JAVA实现画笔系统,其系统主要完成以下功能:设计一个画图程序,能利用它实现用三种类型的线条在画板上任意绘画、书写的功能,该画图程序还需具有橡皮擦功能以及清空整个画面的功能。

第二章需求分析 1.系统要实现的目标分析 ●这个画图程序,最基本的功能是,作为一个画笔,能利用它实现用三种类型 的线条在画板上任意绘画、书写的功能; ●这个画图程序,还需具备橡皮擦的功能,利用这个橡皮擦能够擦除画板上的 图案; ●这个画图程序,还应该具备能够清除整个画板已绘制图画的功能。 2.对输入输出数据及流程的分析

java画图课程设计正式版

2013-2014学年第二学期学号1208020126 《高级语言程序设计》 课程设计报告 题目:画图应用程序 专业:网络工程 班级:2012级1班 姓名:孙亦东 指导教师:齐敏菊 成绩: 计算机与信息工程系 年月日

目录 1设计内容及要求 (2) 1.1设计内容 (2) 1.2设计任务及具体要求 (2) 2 概要设计........................................... .. (2) 3设计过程或程序代码 (2) 3.1 程序实现流程 (2) 3.2 程序算法设计 (3) 3.3 程序重点核心代码简介 (3) 3.4 程序按钮功能核心代码列表 (4) 3.5 程序运行界面截图 (5) 4 设计结果与分析 (8) 5 小结 (8) 参考文献 (9) 附:源程序 (9)

1 设计内容及要求 1.1设计内容 学习了《Java面向对象编程》的课程,为了更进一步的提高我们对Java的深入学习,进行了课程设计,我所选择课程设计是利用Java的GUI实现画图应用程度。其目的是通过本课程设计使我们能够较全面的掌握面向对象程序设计的有关概念和开发方法,以便能较全面地理解、掌握和综合运用所学的知识,提高自身的编程能力。 (1)程序的功能应具备 1)利用Java设计一个画图应用程序; 2)可绘制直线、曲线、椭圆、矩形; 3)可改变线条颜色; 4)可完成图形文件的保存、打开功能。 1.2设计任务及具体要求 主要利用java语言设计开发一个小型的画图应用程序,至少具有如下功能:可以进行绘画,有颜色的选择、可以绘制直线曲线椭圆,矩形、可以保存。操作界面要符合用户的一般习惯,图形或文本界面都可以。 要求:明确课程设计的目的,能根据课程设计的要求,查阅相关文献,为完成设计准备必要的知识;提高学生用高级语言进行程序设计的能力。 2 概要设计 画图应用程序功能介绍 画图应用程序其实质也就是一个简单的画图板。画图板的应用简单灵巧,其占用资源少、操作简单;可以实现一些简单的画图应用操作。其功能较少但是可以为用户的小型图形应用工作带来了很多便利。能实现简单的作图如:画直线、曲线、椭圆、矩形等;也可以实现图像保存、打开、选择颜色等功能。

JAVA绘图基础知识

设置颜色与画笔 创建Color对象的常用构造方法: 1.使用十六进制整数指定红,绿。蓝三原色 Public Color(int rgb) 参数说明:rgb为6位十六进制整数,前两位表示红色,中间两位表示绿色,后两位表示蓝色。范围都是00-FF 2使用十进制整数分别指定红,绿,蓝; Public Color(int r ,int g,int b) 参数说明:r表示红色,g表示绿色,b表示蓝色。范围都是0-255 常用Color常量表 常量名颜色值 Color BLACK 黑色 Color BLUE 蓝色 Color CYAN 青色 Color DARK_GARY 深灰色 Color GRAY 灰色 Color GREEN 绿色 Color LIGHT_GRAY 浅灰色 Color MAGENTA 洋红色 Color ORANGE 橘黄色 Color PINK 粉红色 Color RED 红色 Color WHITE 白色 Color YELLOW 黄色 绘图类可以使用setColor()方法设置当前颜色 V oid setColor(Color c) 参数说明:c是一个颜色对象 调用setStroke()方法设置笔画的属性如改变线条的粗细,使用实线还是虚线定义线段端点的形状 V oid setStroke(Stroke s) 参数说明:s是stroke接口的实现类 BasiStroke类实现了Stroke接口用于绘制图形的轮廓 Public BasicStroke(float width,int cap, int join, float miterlimit, float[] dash, float dash_phase) 参数说明: Width BasicStroke 的宽度。此宽度必须大于等于0.0f。 Cap BasicStroke 端点的装饰。Cap参数可以使用CAP_BUTT CAP_ROUND 和CAP_SQUARE常量 Join 应用在路径线段交汇处的装饰join可以使用JOIN_BEVEL,JOIN_MITER和JOIN_ROUND Miterlimit 斜接触的剪切限制miterlimit必须大于或等于1.0f dash 表示虚线模式的数组

JAVA画图工具课程设计

南昌航空大学软件1学院 课程设计 画图工具程序设计系统 班级:092013 学号:09201319 姓名:许谱龙 指导老师: 苏曦 提交日期:2011-07-08 1

摘要 随着科学技术的不断提高,计算机科学日渐成熟,其强大的功能已为人们深刻认识,它已进入人类社会的各个领域并发挥着越来越重要的作用。 JAVA是一门很优秀的编程语言,具有面向对象、与平台无关、安全、稳定和多线程等特点,是目前软件设计中极为健壮的编程语言。JAVA不仅可以用来开发大型的应用程序。而且特别适合Internet的应用开发。JAVA确实具备“一次写成,处处运行”的特点,JAVA以成为网络时代最重要的编程语言之一。本报告中介绍了用JAVA语言实现画笔系统的全部过程。 本次课程设计是配合JAVA程序设计课程,帮助我们深入学习掌握JAVA语言,熟练运用这个工具来编写的。通过课程设计各个项目的综合训练,培养学生实际分析问题、编程和动手能力、提高学生的综合素质。本课程设计尝试使用一些较生动的示例和设计项目,激发学生学习兴趣,引导学生主动学习,正确理解、接受需要重点掌握的知识点,为参加项目开发及更深入学习做好准备。 本次课程设计主要是用JAVA实现画笔系统,其系统主要完成以下功能:设计一个画图程序,能够实现画笔、画箭头、画直线、画圆形、画椭圆、画矩形、画多边形、书写文字修改该画笔的大小以及颜色。该画图程序还需具有橡皮擦功能以及清空整个画面的功能 关键词:画图工具,JA V A

目录 摘要 (2) 目录 (3) 1.绪论 (4) 2. 开发环境介绍 (5) 3.需求分析 (6) 3.1总体目标 (6) 3.2要实现的功能 (7) 4.概要设计 (8) 4.1设计准备 (8) 4.2需要用到的类 (8) 5.详细设计 (9) 5.5类的设计 (9) 5.2类的方法设计 (9) 6.测试数据及运行结果 (11) 7.总结 (15) 8.参考文献 (15) 9.源程序 (15)

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); //为按钮注册单击事件监听器,委托当前对 象处理事件

Java实现简单的绘图软件

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.FileNameExtensionFilte r; /* 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;

超棒的JAVA课程设计(画图工具)

Java与面向对象的程序设计 课程设计报告课程名称Java与面向对象的程序设计 实验学期 2011 年至 2012 年第二学期 所在学院理学院年级10专业班级信息与计算科学 学生姓名吴亿鑫学号 201030760232 自评成绩 95教师评成绩 学生姓名王灿学号 201030760224 自评成绩 95 教师评成绩 指导教师梁茹冰

《Java与面向对象的程序设计》课程设计报告

摘要 随着科学技术的不断提高,计算机科学日渐成熟,其强大的功能已为人们深刻认识,它已进入人类社会的各个领域并发挥着越来越重要的作用。 JAVA是一门很优秀的编程语言,具有面向对象、与平台无关、安全、稳定和多线程等特点,是目前软件设计中极为健壮的编程语言。JAVA不仅可以用来开发大型的应用程序。而且特别适合Internet的应用开发。JAVA确实具备“一次写成,处处运行”的特点,JAVA以成为网络时代最重要的编程语言之一。本报告中介绍了用JAVA语言实现画笔系统的全部过程。 本次课程设计是配合JAVA程序设计课程,帮助我们深入学习掌握JAVA语言,熟练运用这个工具来编写的。通过课程设计各个项目的综合训练,培养学生实际分析问题、编程和动手能力、提高学生的综合素质。本课程设计尝试使用一些较生动的示例和设计项目,激发学生学习兴趣,引导学生主动学习,正确理解、接受需要重点掌握的知识点,为参加项目开发及更深入学习做好准备。 本次课程设计主要是用JAVA实现画笔系统,其系统主要完成以下功能:设计一个画图程序,能够实现画笔、画箭头、画直线、画圆形、画椭圆、画矩形、画多边形、书写文字修改该画笔的大小以及颜色。该画图程序还需具有橡皮擦功能以及清空整个画面的功能 关键词:画图工具,JAVA

java画图程序-JAVA毕业设计论文

repaint(); } Paint方法描述了组件的绘制方法,通过覆盖该方法,可绘制各种需要的图形。在本程序中,通过一个swith-case结构来设置绘制图形的类型。Shape参数来自于工具栏,通过drawShape方法传入,shape 为0、1、2时画线、画圆、画矩形,它们分别通过Graphics类的drawLine、drawOval、drawRect方法完成。这部分的主要代码如下: switch (shape){ case 0: g.drawLine(point[0].x,point[0].y,point[1].x,point[1].y); break; case 1: int width=point[1].x-point[0].x; int height=point[1].y-point[0].y; g.drawOval(point[0].x,point[0].y,width,height); break; case 2: width=point[1].x-point[0].x; height=point[1].y-point[0].y; g.drawRect(point[0].x,point[0].y,width,height); break; }

2.演示程序 在用户界面上方设置了一个工具栏,包含3个按钮,这3个按钮组成按钮组,某时刻只能一个按钮被有选中。 在按钮的事件处理中,调用ActionEvent类的getSource方法得到事件源,将它与3个按钮进行比较,可得到事件来自于哪个按钮,并将这个参数通过PainterPanel类的drawShape方法传递到PainterPanel 实例中,这样在发生鼠标拖拽时,就能根据shape的值来确定应该绘制哪种图形。主要代码如下: for (int i=0;i

javaApplet编写的简单画图程序

javaApplet文件 import java.awt.*; import java.applet.*; public class Ycc5 extends Applet { Font f=new Font("华文新魏",Font.BOLD,18); public void paint(Graphics g) { g.setColor(Color.red); g.fillOval(200,100,100,100); g.drawOval(200,100,100,100);

g.setColor(Color.black); g.drawLine(170,80,200,110); g.drawLine(250,50,250,90); g.drawLine(340,80,300,110); g.drawLine(150,150,190,150); g.drawLine(170,210,200,190); g.drawLine(250,240,250,210); g.drawLine(340,210,300,190); g.drawLine(310,150,350,150); g.setColor(new Color(62,167,252)); int[]x={550,700,750,500,550}; int[]y={350,350,400,400,350}; g.drawPolygon(x,y,5); g.fillPolygon(x,y,5); g.drawRect(510,400,230,180); g.setColor(new Color(44,252,85)); g.drawRect(650,420,60,70); g.fillRect(650,420,60,70); g.setColor(Color.black); g.drawLine(650,455,710,455); g.drawLine(680,420,680,490); g.drawRect(560,300,20,80); g.setColor(Color.yellow); g.drawRect(560,500,50,79); g.fillRect(560,500,50,79); g.setColor(Color.blue);

用java编写画图程序

Java中的graphics类提供了画布,可以在graphic面画出各种形状,包括图片,各种线条,字符串,各种图像。下面这个程序用java编写一个程序用来画图,类似于ppt中的画笔功能。 v

import javax.swing.*;

import java.awt.*; import java.awt.event.*; public class drawtest1 { public static void main(String args[]){ draw d=new draw(); // d.drawline(); } } class draw extends JFrame implements MouseListener,MouseMotionListener,ActionListener { Graphics g; Color color=Color.green ; Color color1=Color.gray ; int startx,starty,endx,endy; JPanel p1,p2; JButton []btns=new JButton[4]; String title[]={"设置前景色","设置背景色","设置画笔颜色","清除画布"}; public draw(){ super("画图"); this.show(); this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE ); setSize(700,600); setLayout(null); p1=new JPanel(); p2=new JPanel(); for(int i=0;i<4;i++){ btns[i]=new JButton(title[i]); btns[i].addActionListener(this); add(btns[i]); } p1.setBorder(BorderFactory.createTitledBorder("设置颜色")); p1.setBackground(Color.white ); p1.setBounds(30,10,140,240); btns[0].setBounds(50,40,100,30); btns[1].setBounds(50,90,100,30); btns[2].setBounds(50,140,100,30); btns[3].setBounds(50,190,100,30); add(p1); g=this.getGraphics(); g.setClip(180,50,500,500); addMouseListener(this); addMouseMotionListener(this);

相关文档