`
卿雯candy
  • 浏览: 16756 次
  • 性别: Icon_minigender_2
  • 来自: 永州
文章分类
社区版块
存档分类
最新评论

画板的重绘(一维数组)

 
阅读更多
   先前开发了画图板程序,但是将画板窗体最小化或者改变窗体大小的时候,先前画的东西就全部没有了,这是因为当窗体在屏幕上显示的时候,首先是将窗体对象的数据从内存中取出来放到缓存中,再在屏幕上进行绘制。当窗体发生改变的时候,程序会重新从内存中获取更新后的数据绘制。在系统中JFrame的父类中提供一个paint(Graphics g)的方法来负责将窗体的数据在屏幕上绘制出来。
   我们可以用一个容器把所画图形存储起来,例如数组,队列。
   在这里,首先用数组实现画板的重绘。
源代码如下:
import java.awt.Graphics;
import java.awt.event.MouseAdapter;
import java.awt.event.MouseEvent;

import javax.swing.JFrame;
   public class MyDraw extends JFrame{
	   int[] array=new int[100];
	   Graphics g;
	   int x1,y1,x2,y2;
	   int i=0;
	public static void main(String[] args){
		
      MyDraw draw=new MyDraw();
      draw.init();
	}
public void init(){
	this.setTitle("画板重绘的实现");
	this.setSize(300, 300);
	this.setDefaultCloseOperation(3);
    this.addMouseListener(mls);
	this.setVisible(true);
	g=this.getGraphics();
}
DrawListener mls=new DrawListener();
public class DrawListener extends MouseAdapter{
	public void mousePressed(MouseEvent e){
		x1=e.getX();
		y1=e.getY();
	}
	public void mouseReleased(MouseEvent e){
		x2=e.getX();
		y2=e.getY();
		
		i++;
			 array[4*i-4]=x1;
			array[4*i-3]=y1;
			array[4*i-2]=x2;
		   array[4*i-1]=y2;
			g.drawLine(x1, y1, x2, y2);
		}
		
	}

public void paint(Graphics g){
	//一定要先调用父类的paint 方法,用来绘制窗体。
	super.paint(g);
	System.out.println("paint()");
	for(int i=0;i<25;i++){
		g.drawLine(array[4*i],array[4*i+1],array[4*i+2],array[4*i+3]);
	}
}
}


   可是如果用数组,有很大的缺陷,因为数组必须得先定义数组的大小。因此不建议用此方法。
分享到:
评论

相关推荐

    e语言-易语言画板自绘

    易语言画板自绘源码例程程序调用API函数实现画板自绘效果。点评:易语言画板自绘源码关键是图层的定义和数据记录,明白原理后,可使用GDI等绘制。

    易语言画板自绘

    易语言画板自绘源码,画板自绘,标尺子程序_绘制标尺刻度,恢复鼠标状态,无拖动时激活恢复,刻度区重绘,客户区重绘,二级缓冲绘制,客户区刷新,选中辅助线,高亮辅助线,拖动辅助线,客户绘制的图形,GetProp,SetRect,SetProp,...

    易语言源码易语言画板自绘列表源码.rar

    易语言源码易语言画板自绘列表源码.rar 易语言源码易语言画板自绘列表源码.rar 易语言源码易语言画板自绘列表源码.rar 易语言源码易语言画板自绘列表源码.rar 易语言源码易语言画板自绘列表源码.rar 易语言源码...

    易语言画板自绘菜单

    易语言画板自绘菜单源码,画板自绘菜单,取主菜单索引,画焦点,透明窗口,设置窗口信息,SetForegroundWindow,dll_取坐标窗口句柄

    易语言画板自绘按钮

    易语言画板自绘按钮源码,画板自绘按钮,按钮反馈事件,画图形

    易语言画板自绘编辑框

    易语言画板自绘编辑框源码,画板自绘编辑框

    易语言源码易语言画板自绘界面源码.rar

    易语言源码易语言画板自绘界面源码.rar 易语言源码易语言画板自绘界面源码.rar 易语言源码易语言画板自绘界面源码.rar 易语言源码易语言画板自绘界面源码.rar 易语言源码易语言画板自绘界面源码.rar 易语言源码...

    易语言源码易语言画板自绘菜单源码.rar

    易语言源码易语言画板自绘菜单源码.rar 易语言源码易语言画板自绘菜单源码.rar 易语言源码易语言画板自绘菜单源码.rar 易语言源码易语言画板自绘菜单源码.rar 易语言源码易语言画板自绘菜单源码.rar 易语言源码...

    易语言画板绘图与API绘图对比源码

    易语言画板绘图与API绘图对比源码例程程序结合易语言应用接口支持库,通过调用DLL文件实现了2种不同的方法绘制动态线效果。本易语言例程源码是易语言论坛用户编写的教程,属于易语言图形图像教程。本易语言例程还...

    易语言源码易语言画板自绘编辑框源码.rar

    易语言源码易语言画板自绘编辑框源码.rar 易语言源码易语言画板自绘编辑框源码.rar 易语言源码易语言画板自绘编辑框源码.rar 易语言源码易语言画板自绘编辑框源码.rar 易语言源码易语言画板自绘编辑框源码.rar ...

    易语言画板自绘列表框

    易语言画板自绘列表框源码,画板自绘列表框,重画列表,取现行选中项,加入表项,取现行选中项备注

    易语言源码易语言画板自绘源码.rar

    易语言源码易语言画板自绘源码.rar 易语言源码易语言画板自绘源码.rar 易语言源码易语言画板自绘源码.rar 易语言源码易语言画板自绘源码.rar 易语言源码易语言画板自绘源码.rar 易语言源码易语言画板自绘源码....

    易语言源码易语言画板自绘按钮源码.rar

    易语言源码易语言画板自绘按钮源码.rar 易语言源码易语言画板自绘按钮源码.rar 易语言源码易语言画板自绘按钮源码.rar 易语言源码易语言画板自绘按钮源码.rar 易语言源码易语言画板自绘按钮源码.rar 易语言源码...

    易语言源码易语言画板自绘列表框源码.rar

    易语言源码易语言画板自绘列表框源码.rar 易语言源码易语言画板自绘列表框源码.rar 易语言源码易语言画板自绘列表框源码.rar 易语言源码易语言画板自绘列表框源码.rar 易语言源码易语言画板自绘列表框源码.rar ...

    易语言画板自绘列表

    易语言画板自绘列表源码,画板自绘列表,重画,挂接,置行高,进度,取表项数,插入项目,更新进度,取选中项,删除表项,取项名称,取项软件大小

    易语言画板自绘界面

    易语言画板自绘界面源码,画板自绘界面,绘制_界面,绘制_标签,鼠标位置被移动事件,鼠标左键被按下事件,内部按钮

    《C 语言数字画板》 某学校的一个课设,在本次课程设计中,你将设计一个简单的绘图程序,它通过使用一系列命令将图像绘制到显示器。

    1.画布 是计算机内存中由整数构成的一个二维数组,用它来表示我们将在其中 绘画的虚拟空间。我们将内存二维数组的单个数组元素作为画布上的一个像素加 以引用。 2.颜色 像素中的整数表示黑色 Black(表示为 0)和白色 ...

    易语言画板自绘心形图案源码

    资源介绍:。易语言画板自绘心形图案源码,源码实现了自绘心形图案效果。资源作者:。@易语言源码大全下载。资源界面:。资源下载:。

    VB 设计画板程序, 界面设计、与使用数组存储绘画数据

    这是使用VB 语言设计的画板程序, 涉及到VB界面设计, 和使用数组存储绘画数据。 画板还支持动画显示之前的绘画过程, 以及自定义颜色。

    e语言-易语言画板自绘列表

    易语言画板自绘列表源码例程程序结合易语言画板实现自绘列表。 点评:易语言画板自绘列表源码是易语言画板应用例程。

Global site tag (gtag.js) - Google Analytics