先前开发了画图板程序,但是将画板窗体最小化或者改变窗体大小的时候,先前画的东西就全部没有了,这是因为当窗体在屏幕上显示的时候,首先是将窗体对象的数据从内存中取出来放到缓存中,再在屏幕上进行绘制。当窗体发生改变的时候,程序会重新从内存中获取更新后的数据绘制。在系统中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]);
}
}
}
可是如果用数组,有很大的缺陷,因为数组必须得先定义数组的大小。因此不建议用此方法。
分享到:
相关推荐
易语言画板自绘源码例程程序调用API函数实现画板自绘效果。点评:易语言画板自绘源码关键是图层的定义和数据记录,明白原理后,可使用GDI等绘制。
易语言画板自绘源码,画板自绘,标尺子程序_绘制标尺刻度,恢复鼠标状态,无拖动时激活恢复,刻度区重绘,客户区重绘,二级缓冲绘制,客户区刷新,选中辅助线,高亮辅助线,拖动辅助线,客户绘制的图形,GetProp,SetRect,SetProp,...
易语言源码易语言画板自绘列表源码.rar 易语言源码易语言画板自绘列表源码.rar 易语言源码易语言画板自绘列表源码.rar 易语言源码易语言画板自绘列表源码.rar 易语言源码易语言画板自绘列表源码.rar 易语言源码...
易语言画板自绘菜单源码,画板自绘菜单,取主菜单索引,画焦点,透明窗口,设置窗口信息,SetForegroundWindow,dll_取坐标窗口句柄
易语言画板自绘按钮源码,画板自绘按钮,按钮反馈事件,画图形
易语言画板自绘编辑框源码,画板自绘编辑框
易语言源码易语言画板自绘界面源码.rar 易语言源码易语言画板自绘界面源码.rar 易语言源码易语言画板自绘界面源码.rar 易语言源码易语言画板自绘界面源码.rar 易语言源码易语言画板自绘界面源码.rar 易语言源码...
易语言源码易语言画板自绘菜单源码.rar 易语言源码易语言画板自绘菜单源码.rar 易语言源码易语言画板自绘菜单源码.rar 易语言源码易语言画板自绘菜单源码.rar 易语言源码易语言画板自绘菜单源码.rar 易语言源码...
易语言画板绘图与API绘图对比源码例程程序结合易语言应用接口支持库,通过调用DLL文件实现了2种不同的方法绘制动态线效果。本易语言例程源码是易语言论坛用户编写的教程,属于易语言图形图像教程。本易语言例程还...
易语言源码易语言画板自绘编辑框源码.rar 易语言源码易语言画板自绘编辑框源码.rar 易语言源码易语言画板自绘编辑框源码.rar 易语言源码易语言画板自绘编辑框源码.rar 易语言源码易语言画板自绘编辑框源码.rar ...
易语言画板自绘列表框源码,画板自绘列表框,重画列表,取现行选中项,加入表项,取现行选中项备注
易语言源码易语言画板自绘源码.rar 易语言源码易语言画板自绘源码.rar 易语言源码易语言画板自绘源码.rar 易语言源码易语言画板自绘源码.rar 易语言源码易语言画板自绘源码.rar 易语言源码易语言画板自绘源码....
易语言源码易语言画板自绘按钮源码.rar 易语言源码易语言画板自绘按钮源码.rar 易语言源码易语言画板自绘按钮源码.rar 易语言源码易语言画板自绘按钮源码.rar 易语言源码易语言画板自绘按钮源码.rar 易语言源码...
易语言源码易语言画板自绘列表框源码.rar 易语言源码易语言画板自绘列表框源码.rar 易语言源码易语言画板自绘列表框源码.rar 易语言源码易语言画板自绘列表框源码.rar 易语言源码易语言画板自绘列表框源码.rar ...
易语言画板自绘列表源码,画板自绘列表,重画,挂接,置行高,进度,取表项数,插入项目,更新进度,取选中项,删除表项,取项名称,取项软件大小
易语言画板自绘界面源码,画板自绘界面,绘制_界面,绘制_标签,鼠标位置被移动事件,鼠标左键被按下事件,内部按钮
1.画布 是计算机内存中由整数构成的一个二维数组,用它来表示我们将在其中 绘画的虚拟空间。我们将内存二维数组的单个数组元素作为画布上的一个像素加 以引用。 2.颜色 像素中的整数表示黑色 Black(表示为 0)和白色 ...
资源介绍:。易语言画板自绘心形图案源码,源码实现了自绘心形图案效果。资源作者:。@易语言源码大全下载。资源界面:。资源下载:。
这是使用VB 语言设计的画板程序, 涉及到VB界面设计, 和使用数组存储绘画数据。 画板还支持动画显示之前的绘画过程, 以及自定义颜色。
易语言画板自绘列表源码例程程序结合易语言画板实现自绘列表。 点评:易语言画板自绘列表源码是易语言画板应用例程。