`
XY1991
  • 浏览: 36811 次
  • 性别: Icon_minigender_2
  • 来自: 长沙
社区版块
存档分类
最新评论

画板小结

阅读更多


画板
 之前一直学习Java的基础理论,画板是我尝试的第一个小项目,很兴奋。
 呵呵,这个画板,只是实现了一些简单的功能,例如画直线、圆、曲线、调色板等
 像画直线、圆,Java API包下有现成的函数drawLine、 drawOval,直接调用就可以,需要费点心思的就是
 调色板、曲线、重绘。
 
 调色板
 调色板就是在画板上添加一个按钮,用“匿名内部类”的方法为按钮添加监听器,了解一个“匿名内部类”就行了

 匿名内部类就是在当前类内部再添加一个监听类,功能是为按钮添加监听。

//以"匿名内部类"的形式创建了一个事件监听器对象
java.awt.event.ActionListener al=  new java.awt.event.ActionListener(){
	public void actionPerformed(ActionEvent e) {
		// 调用弹出调色板的方法
		buttonAction();
	}
};

//按钮发生时,创建一个color选择框
private void buttonAction(){
	//弹出一个Color选择框
	java.awt.Color  c=javax.swing.JColorChooser.showDialog(this, "请选择一种你要画的Color", java.awt.Color.RED);
	System.out.println("用户选中的color是: "+c);
	ml.setColor(c); 
}

  
 重绘
 创建一个自定义队列,每画一个图形就把它添加到队列中
 创建一个Graph类,来保存需要重绘的内容,如形状、颜色、坐标等;

public class Graph {
	//颜色
	private java.awt.Color color;
	//形状
	private String item;
	//坐标
	private int x1, y1, x2, y2;
	
	//构造函数用来初始化属性
	public Graph(String item,java.awt.Color color,int x1,int y1,int x2,int y2){
		this.item = item;
		this.color = color;
		this.x1 = x1;
		this.y1 = y1;
		this.x2 = x2;
		this.y2 = y2;
	}
}

  
 
 曲线
 曲线的实现要利用鼠标拖动事件,在鼠标拖动时实现画曲线。画曲线是通过画直线来实现的,当直线足够短时,就可以画曲线

/**
 * 鼠标按下时的拖动事件处理方法(曲线包含重绘)
 */
public void mouseDragged(MouseEvent e) {
	x2 = e.getX();
	y2 = e.getY();
	//设置颜色
	g.setColor(df.getColor());
	// 画曲线 
	g.drawLine(x1, y1, x2, y2);
	//创建一个Graph类的对象
	Graph graph = new Graph("曲线",df.getColor(),x1,y1,x2,y2);
	//将对象添加到队列中
	graphList.add(graph);
	//交换坐标一定要放在重绘之后,否则会出现错误
	x1 = x2;
	y1 = y2;
  
}

  
  其实真正的画板是有点复杂的,我的这个画板只是个开始,以后随着学习的深入会逐步完善它的一些功能。
  渐渐喜欢上了用程序来表达自己的想法,喜欢上了敲键盘的感觉,喜欢上了遇到问题解决问题,最终只要自己想要的达到了, 之前再费劲都是值得的。

5
6
分享到:
评论

相关推荐

    几何画板制作脚本.doc

    3. **教学流程**:课件设计分为导入、新授、练习和小结四个部分。导入部分用图片引起学生的兴趣;新授阶段逐步引导学生发现和证明等腰三角形的性质;练习环节设置相关问题和例题,巩固所学知识;小结则对整个课程...

    java画图板的总结

    在Java编程语言中,画图板(Canvas)是图形用户界面(GUI)开发的一个关键组件。它是Java AWT(Abstract Window Toolkit)库的一部分,用于在窗口上绘制图形。Canvas类继承自Component,允许程序员直接在屏幕上进行...

    java学习小总结——画图板制作(附代码)

    本篇小结将聚焦于如何使用Java实现一个基本的画图板,同时提供相关的源码分析。 1. Java GUI基础 Java提供了丰富的类库用于创建GUI,主要在java.awt和javax.swing包下。在这个项目中,我们可能会使用`JFrame`作为主...

    利用几何画板探究二次函数一般式的性质.doc

    8. **师生互动与小结**:总结了二次函数的一般性质: - \( a \) 决定开口方向:\( a > 0 \) 时,开口向上;\( a ) 时,开口向下。 - \( b \) 与 \( a \) 共同决定顶点位置:同号时顶点在 y 轴左侧,异号时在右侧。...

    powerbuilder 9.0软件项目开发实践

    【图书目录】 第1章 PB 9.0编程基础 1.1 PB 9.0的特性 1.2 PB 9.0开发环境 1.3 PB 9.0的主要画板 1.4 PowerScript简介 ...1.8 小结 ...3.7 小结 ...4.5 小结 ...5.8 小结 ...6.8 小结 ...7.9 小结 ...8.4 小结 ...9.8 小结

    PowerBuilder 9.0软件项目开发实践pdf2

    【图书目录】 第1章 PB 9.0编程基础 1.1 PB 9.0的特性 1.2 PB 9.0开发环境 1.3 PB 9.0的主要画板 1.4 PowerScript简介 1.5 SQL语句的使用 1.6 常用控件 1.7 数据窗口对象 1.8 小结 第2章 记事本应用系统 ...9.8 小结

    vc开发经典模式与实例 源码

     1-3 本章小结 第2章 软件开发过程与方法  2-1 软件开发的人月神话  2-2 软件工程基础  2-2-1 软件开发模型  2-2-2 软件开发步骤 . 2-3 面向对象编程与UML建模  2-3-1 UML基础  2-3-2 面向对象...

    HTML5 CANVAS游戏开发实战(PDF和源代码)

    第一部分 准备工作篇 第1章 准备工作 / 2 ...1.2 canvas简介 / 5 1.2.1 canvas标签的历史 / 5 1.2.2 canvas的定义和用法 / 6 1.2.3 如何使用canvas来绘图 / 6 1.2.4 canvas的限制 / 7 ...11.6 小结 / 322

    ActionScript开发技术大全

    1.3小结 8 第2章搭建ActionScript3.0开发环境 9 2.1搭建基于FlashCS3IDE的开发环境 9 2.1.1安装FlashCS3ID 9 2.1.2安装FlashCS3IDEupdate9.0.2 11 2.1.3在FlashCS3IDE下创建ActionScript3.0项目 11 2.2搭建基于Flex...

    VC开发经典模式与实例.rar

     1-3 本章小结 第2章 软件开发过程与方法  2-1 软件开发的人月神话  2-2 软件工程基础  2-2-1 软件开发模型  2-2-2 软件开发步骤  2-3 面向对象编程与UML建模  2-3-1 UML基础  2-3-2 面向对象分析 ...

    中国结模板PSD

    可以通过Photoshop的内置功能,如Artboard(画板)来预览不同尺寸的布局。同时,为了提高网页性能,需注意图片的优化,如减少文件大小、使用适当的文件格式(如SVG用于矢量图形,JPEG或PNG用于位图)。 标签“网页...

    信息技术教案——画图.doc

    该设计方案共分为八个部分:教学目的、教学重难点、教学过程、认识“画图”窗口、尝试完成任务、保存文件、退出“画图”窗口和课堂小结。 一、教学目的 本设计方案的教学目的旨在帮助学生掌握启动与退出“画图”...

    Powerbuilder9.0实用教程源代码

    1.6 小结 27 1.7 习题 27 第2章 编程基础知识 28 2.1 PowerScript脚本语言书写规则 28 2.1.1 忽略大小写 28 2.1.2 语句的断行、续行和分割 28 2.1.3 注释 29 2.2 数据类型 29 2.3 变量和作用域 30 2.3.1 ...

    信息技术教案——画图.pdf

    课堂小结回顾了画图程序的基本操作,强调了铅笔工具的使用和颜色选择。扩展练习鼓励学生创新,设计出“美丽家园”的画面,提高他们的绘图技能。 在后续的课程中,进一步教授了“铅笔”工具的使用技巧,包括如何画...

    信息化教学设计高中数学.doc

    3. 教学过程中,借助多媒体课件,进行例题讲解、练习巩固和小结归纳,使学生熟练掌握函数单调性的定义和判定方法。 六、教学流程设计 1. 创设情境,形成概念:通过多媒体展示一次函数和二次函数图象,引导学生观察...

    PHP基于GD库的图像处理方法小结

    2. 创建画布:画布可以看作是一个虚拟的画板,GD库通过画布来存放图像信息。创建画布是所有基于GD库进行图像处理的基础。函数imageCreate()和imageCreateTrueColor()分别用于创建基于调色板的画布和真彩色的画布。...

    开学如何学好高中数学PPT课件.pptx

    同时,需要记数学笔记,建立数学纠错本,记忆数学规律和数学小结,争做数学课外题,作业书写规范,反复巩固,学会总结归类。 在学习高中数学的过程中,需要注意初中数学与高中数学的差异,高中数学与信息技术的紧密...

    PowerBuilder 9.0软件项目开发实践完整版(pdf)

    在每个章节的最后,作者都给出了小结,总结了本章的重要内容和技巧,方便读者复习和巩固学习成果。整体上,本书的结构清晰,内容详实,由浅入深,是学习PowerBuilder 9.0开发的宝贵资料,适合初学者作为入门教材,也...

Global site tag (gtag.js) - Google Analytics