[問題] 請問,有關paint()執行的順序
各位大大,大家好,我是java新手…
如果有人問過了,對不起,我一定會馬上回來d掉的....>< 先說聲抱歉....
我想要把一行字,造成在畫面上移動的樣子
那我的想法是,每次更新印出的位置,然後再repaint()一次
我的程式碼如下
import java.applet.Applet;
import java.awt.*;
import java.awt.event.*;
import java.lang.*;
/*
<applet
code = slide.class
width=600
height=600>
</applet>
*/
public class slide extends Applet implements ActionListene
{
Button button1;
int i=60;
String Sa = "hello java";
public void init()
{
button1 = new Button("click me");
add(button1);
button1.addActionListener(this);
}
public void paint(Graphics g)
{
g.drawString(Sa,i,100);
System.out.println("CALL paint()");
}
public void actionPerformed(ActionEvent e)
{
if(e.getSource() == button1)
{
while(i<160)
{
++i;
repaint();
System.out.println(i);
}
}
}
}
那我想,當按下button後,應該會印出
CALL paint()
61
CALL paint()
62
CALL paint()
.
.
CALL paint()
160
可是,實際上卻出現
61
62
.
.
.
160
CALL paint()
那這和我原本希望的不一樣,為什麼,它會在for loop的最後一次才會
呼叫paint()這個method呢?
因為我想了一陣子,也沒看過書上提過…
所以才po上來,請教各位大大
謝謝....
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 59.117.102.78
討論串 (同標題文章)
以下文章回應了本文:
完整討論串 (本文為第 1 之 2 篇):
java 近期熱門文章
PTT數位生活區 即時熱門文章