畫板重繪的實現

2021-08-25 14:28:20 字數 1043 閱讀 1921

畫板重繪的實現

在完成之前的功能之後,我們發現當改變窗體大小之後,之前我們在窗體上繪製的圖形會消失

這是因為承載我們圖形的窗體也是畫出來的,在改變大小之後是對窗體和元件進行了重繪

但是不會對我們之前畫的圖形進行重繪

所以我們需要對我們之前畫的圖形進行儲存,然後在對窗體重繪之後進行重新繪製

首先我們定義乙個容器陣列(shape)類用來儲存我們所畫圖形的資料

public class shape 

public shape(int x,int y,int x1,int x2,int x3,int y1,int y2,int y3,color color,string type,stroke sroke)

然後重寫寫重繪的方法(我們這裡以直線舉例)

public void draw(graphics g)

}

然後在drawlistener裡畫完直線之後進行儲存

shape shapes=new shape[1000000];

private int i;

public void mousereleased(mouseevent e)

shape s=new shape(x,y,x1, x2, x3, y1, y2, y3, co, command, stroke);

shapes[i++]=s;

draw dr=new draw();

dr.setshape(shapes);

將drawlistener裡儲存的陣列傳遞過來之後,draw主函式裡在在重繪窗體之後呼叫陣列裡儲存的資料並重新繪製圖案

shapes=dl.shapes;

public void paint(graphics g){

//呼叫父類的方法重繪元件

super.paint(g);

for(int i=0;i這是再當我們改變窗體大小之後,原來的圖形不會消失,也會被重新繪製。

到這裡我們的畫圖板就完成了。

java 給小畫板加上重繪

在視窗最小化 改變視窗的位置 大小等操作時 我們會發現原先已經畫好的圖不見了 這到底是為什麼呢?簡單點說是因為在對視窗進行這些操作時,視窗重新繪製了一遍,而由於我們沒有重寫jframe裡的paint 方法,所以呼叫的是父類的方法。public void paint graphics g 這裡的lis...

繪王繪畫板怎麼用

新購買的數字板使用前,應先瀏覽產品配備的說明書,按照說明書提示一步一步開始你的數字板使用之旅。值得注意的是第一次使用數字板會出現一定的不適應,簡單的說就是手生的,就跟學書法的人第一次用毛筆一樣,握筆會不習慣,這點需要慢慢適應,方法就是多寫多用。數字板的壓感級別,指的是數字板對於下筆壓力感應的精細度,...

Button 按鈕的重繪

using system using system.collections.generic using system.componentmodel using system.drawing using system.data using system.linq using system.text u...