学习重绘后的总结
1.为什么要重绘?
我们在窗体中画了图形,当我们最小化窗体或者弹出颜色选择器时,原来的图形就不见了,于是我们需要学习重绘。
2.重绘就是把原来画的图形重新在窗体中画出来,即当我们最小化窗体或者弹出颜色选择器时,原来的图形还表现在窗体上。
3.重绘的实现:
1.重绘运用到了我上一节课学的自定义队列。我们把我们所画的图形都存入队列中,
当最小化窗体或者弹出颜色选择器时,再将之前画好的(保存在队列中的)图形对象重绘在窗体中。
2.我的简易画板:
1.建立一个窗体,带有可选择画图形的JRadioButton以及可以选择颜色的按钮。
2.建立一个画图形的接口,写好画各种图形的实现该接口的类。
如:
/**
* 定义一个画图形的接口
*/
public interface IDraw {
public void draw(java.awt.Graphics g);
}
/**
* 一个画直线的实现类
*/
import java.awt.Color;
import java.awt.Graphics;
public class ImpLine implements IDraw{
//定义坐标属性
private int x1,y1,x2,y2;
//定义颜色属性
private java.awt.Color color;
//定义一个无参构造函数
public ImpLine(){}
//定义一个带坐标值和颜色参数的参构造函数
public ImpLine(int x1,int y1,int x2,int y2,Color color){
this.x1 = x1;
this.y1 = y1;
this.x2 = x2;
this.y2 = y2;
this.color = color;
}
public void draw(Graphics g) {
g.setColor(color);
g.drawLine(x1, y1, x2, y2);
}
}
3.定义一个自定义队列接口。
4.定义一个实现自定义队列接口的实现类。
5.添加事件监听器以及事件处理类。
6.重绘需要用到paint(java.awt.Graphics g)方法,在含有主函数的类中
//重绘的方法,这个方法会自动被调用
public void paint(java.awt.Graphics g){
//调用父类中的重绘方法
super.paint(g);
//利用循环,把存储在队列中的图形一个个画出来
}
重绘的总体思路是每画一个图形,就将该图形对象存入队列中,重绘就是将存储在队列中的图形对象再读取并画出来。
所以需要一个实现了自定义队列接口的类,用这个类实例化一个存储图形对象的对象,我们每画一个图形,就将该图形对象存入其中。
分享到:
相关推荐
(6)新建文件功能:新建文件,将画板上绘制的内容清空(清空之前可以确认是否需要进行保存)清屏(重绘)功能依次方法; (7)文件保存格式为BMP格式; (8)文字功能:读取文本框中的文本并打印到屏幕鼠标的相应的响应...
`paintComponent()`方法会在组件需要重绘时自动被调用,因此它是画布绘制的核心。 三、事件处理 在Java画板中,用户可能需要点击或拖动鼠标来绘制图形。这就需要实现MouseListener和MouseMotionListener接口,监听...
- 设计画布:通过JPanel类创建画布,覆盖其paintComponent方法,用以重绘图形。 - 实现绘图工具:如线条、圆形、矩形等基本图形,通过Graphics类的drawLine、drawRect、drawOval等方法实现。 - 用户交互:添加...
要实现图形的移动,可以保存每个图形的位置信息,当用户选择移动图形时,改变图形的位置坐标,并重绘整个面板。 8. **颜色和样式**: 用户可能需要选择不同的颜色和线条样式。这可以通过创建颜色对象(如Color)...
【Java简单画板】是一款基于Java编程语言开发的轻量级画图软件,它提供了基本的绘图功能,包括绘制直线、矩形和椭圆,适用于进行简单的图形创作和涂鸦。这款工具的设计理念是易用性和实用性,使得用户无需复杂的操作...
在Java编程语言中,开发一个画板程序是一项常见的任务,它可以帮助用户进行图形绘制和编辑。这个特定的项目,"java实现画板的基本功能程序",利用了Java的轻量级组件(Lightweight Components)来构建这样的应用。...
Java创意画板是一个基于Java编程语言开发的全功能画板应用程序,它提供了丰富的图像处理功能,包括重绘、迭代图像以及递归图形等。这个项目是Java初学者和爱好者提升编程技能,理解图形用户界面(GUI)设计以及图形...
- 避免不必要的重绘,通过设置适当的重绘区域,只更新实际改变的部分。 6. **实战应用**: - 实现简单的游戏,如俄罗斯方块,使用画板绘制游戏画面。 - 设计绘图工具,让用户可以直接在画板上绘制图形或编辑图片...
这时,可以使用`repaint()`方法来触发重绘,这个方法会调用`update()`。如果需要提高性能,可以考虑使用double buffering技术,通过在内存中先完成所有绘图,然后一次性将结果绘制到屏幕,减少闪烁和卡顿。 标签中...
清空功能是通过清除整个画布区域实现的,这通常意味着重绘整个组件或使用特定颜色(如背景色)覆盖现有图像。 保存和打开功能涉及到文件I/O操作。在Java中,可以使用`FileOutputStream`和`ObjectOutputStream`来...
这个改进版的Java网络画板增加了几个关键功能,如颜色随机变化、线条粗细选择以及重绘功能,提升了用户体验并解决了在特定情况下画布可能消失的问题。 1. **颜色随机变化**: 在这个版本中,画笔的颜色可以自动...
【标题】"huaban.rar_java画板"是一个与Java编程相关的项目,主要目的是实现一个基本的画板程序。这个程序允许用户在屏幕上进行绘画操作,包括绘制直线、曲线、填充颜色等基本图形绘制功能。在Java中,实现这样的...
6. **绘图效率**:在循环绘图时,需要注意性能优化,避免不必要的重绘。可以使用`repaint()`方法来刷新组件,而不是每次都调用`paint()`。 以下是一个简单的例子,展示了如何使用循环语句在Java画板上绘制一系列的...
6. **性能优化**:在处理大量用户手势时,可能需要考虑性能优化,如使用离屏Canvas减少重绘,或者在合适的时候才更新View,避免不必要的渲染。 7. **用户交互设计**:为了让用户有更好的签名体验,可能需要添加橡皮...
将其画板位图进行重绘,清空画布。4.撤销模块。保存其画笔路径,撤销时删除上一步操作,调用重绘来实现。5.保存绘图模块。先在本地的文件夹上创建一个文件 默认创建的是/sdcard/Pictures/由于文件的名字是不能重复的...
1. 实现编写的一个重绘接口。 2. 在用户界面 GUI 类中,继承 JFrame 类. 3. 在事件监听 DrawListener 类中实现了 MouseListener、MouseMotionListener、 ActionListener 监听接口,并重写其绘图方法。 4.在事件监听...
1. **绘图面板初始化**:`DrawPanel`类会覆盖`paintComponent(Graphics g)`方法,这个方法在需要重绘组件时被调用。`Graphics`对象提供了各种绘图操作,如画线、填充形状、设置颜色等。 2. **事件处理**:为了响应...
例如,通过批处理绘制操作,减少重绘区域,或者使用离屏Canvas提高渲染速度。 7. **工具箱和设置**:除了基础的绘图,还可以扩展各种绘图工具,如刷子、橡皮擦、形状工具等。此外,还可以提供线宽、透明度等设置,...
在本项目中,我们主要探讨的是如何使用...通过学习和理解这些知识点,开发者可以创建出自己的Java画板程序,实现用户自定义的图形绘制功能。这个过程不仅锻炼了Java GUI编程能力,也加深了对图形绘制和事件处理的理解。
### 课程设计报告JAVA画板模拟画图工具 #### 1. 课题介绍 ##### 1.1 课程设计目的 本次课程设计的目标是利用Java编程语言开发一款模拟Windows画图程序的应用,该应用能够支持基本的图形图像编辑功能,如创建、修改...