200分悬赏解决java repaint()保存前一步操作问题

来源:百度知道 编辑:UC知道 时间:2024/05/22 07:18:12
我在用java程序画图时,如何保存前一步操作,
例如 第一步画的是方,第二步是圆,第三步是直线,,但是画了圆,第一步的方没了,画了直线,第二部的圆没了,我要怎么保存下来
最好给个实力

两种方案。一种保存坐标,打开的时候就是拿坐标数据来重新画出来,这个值适合线条不是特别多的图,否则会影响速度。
另外一种就是双缓冲,就是每在屏幕上画一笔,就把这一笔画到缓冲图上去,保存就可以直接保存缓冲图就可以了,但是这种没有保存线条数据,所以要是对图进行细致的处理就麻烦点了,可缓冲图在线条特别多的时候,速度影响不大。
你说的画图只显示一个的问题,我不知道你是用缓冲图来画图,还是直接在控件上画的。如果是直接画,你就要保存所有的画出来的图形数据,每次重画都要把以前画过的东西重新画一遍,如果你只画最后一次的那就只有最后一次的了。你可能就是出现的是这种错误吧。 如果不对图进行很细致的操作建议你缓冲图,只在缓冲图上画,然后把图贴上去,这个可能会有闪烁出来。当然也可以采用两个结合,保存用缓冲图,画则是直接画。。

//////有个小例子....但是是画一堆矩形的 呵呵~~~
import java.awt.Color;
import java.awt.Graphics;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.util.Random;
import javax.swing.JButton;
import javax.swing.JPanel;
import javax.swing.*;
import java.awt.*;

public class TestDraw {

Random r = new Random();

MyFrame mf = new MyFrame("Test");

JPanel pan = new JPanel();

JButton jb = new JButton("Draw");

JButton jbc = new JButton("Clear");

Gra