[問題] Applet的paint函式重繪問題。
我開啟Applet的視窗後,將Applet視窗移出螢幕範圍外,
再拉回來,整個Applet畫面被清空,畫的圖形都不見了。
看debug的輸出,會看到System.out.println這行只輸
出一次paint而己。
如果把super.paint(g)這行拿掉,可以看到paint很多次,
但是圖形有很多殘影且背景沒有重繪。
我想知道應該怎麼做才會正確的重繪,我想這個問題應
該很簡單,但是書上沒寫到,麻煩請各位高手指點一下。
程式碼如下
public void paint(Graphics g)
{
super.paint(g);
System.out.println("paint\n");
for(int i=0; i<10; ++i)
{
g.drawLine(0, 0, 25, 10*i);
}
}
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 59.121.131.205
→
09/10 18:20, , 1F
09/10 18:20, 1F
更新有repaint可以用,但是我覺得很奇怪的地方是
繪圖的時候,應該會呼叫到paint這個函式,所以拉出畫面外,再拉回來時
,應該會再呼叫到paint,但是不知道為什麼,好像只有super.paint(g)有
作用,它後面的部分都沒作用?這是我的想法,不知道正不正確。
→
09/10 18:50, , 2F
09/10 18:50, 2F
有用AWT,但應該沒用到component吧?
共improt下面兩個package
import javax.swing.JApplet;
import java.awt.Graphics;
我灌得Java版本
jdk-6u21-windows-i586
用的IDE環境
eclipse-jee-helios-win32.zip
※ 編輯: tsaiminghan 來自: 59.121.131.205 (09/10 19:04)
※ 編輯: tsaiminghan 來自: 59.121.131.205 (09/10 19:05)
→
09/10 19:25, , 3F
09/10 19:25, 3F
→
09/10 19:26, , 4F
09/10 19:26, 4F
所以這和windows API的運作方法不一樣?如果有發生被覆住的區塊,在恢復時,
windows API會自動呼叫paint函式來重繪
我剛才重試了一下,情況如你所說,沒有整個重繪,不過拉來拉去時,
有時好像會發生,不知道是不是我電腦有問題。
※ 編輯: tsaiminghan 來自: 59.121.131.205 (09/10 20:26)
推
09/15 00:12, , 5F
09/15 00:12, 5F
→
09/15 08:51, , 6F
09/15 08:51, 6F