ورود

View Full Version : سوال: repaint()



MSN_Issue
دوشنبه 16 آذر 1388, 15:01 عصر
سلام به همه ...
دوستان من وقتی از وقفه ی
Thread.sleep(1000) برای چاپ یه کلمه استفاده میکنم درست کار میکنه و با وقفه های 1ثانیه کلمه رو چاپ میکنه .
اما وقتی از اون برای متد repaint() استفاده میکنم (مثلا تو یه حلقه ) فقط جواب آخر رو repaint میکنه !!!! (فقط برای بار آخر (یه بار) repaint میکنه !)
کد زیر رو ببینید :

import java.awt.event.*;
import java.awt.*;
import javax.swing.*;

public class robot
{
public static void main(String [] aa)
{
Frame f=new roboFrame();
f.setVisible(true);
}
}
//-------------------------------
class roboFrame extends Frame implements ActionListener
{
int i=50,j=50;
Button go;

roboFrame()
{
super("Robot");
go=new Button("GO");
setSize(400,400);
add(go,"South");
addWindowListener(new close());
go.addActionListener(this);
}
public void actionPerformed(ActionEvent ae)
{
for(j=50;j<300;j=j+50)
{
try
{

Thread.sleep(700L);
}
catch(Exception e){}
repaint();
}

}
public void paint(Graphics g)
{
g.drawString("Ok!", 50,j);

}
}

تو این برنامه قراره با زدن دکمه ی "GO" یه نوشته به فاصله ی زمانی 1ثانیه پایین بیاد ، اما فقط حالت آخرشو نشون میده !

پ ن : کلاس close استفاده شده تو برنامه برای بستن فرم :


import java.awt.event.*;
public class close extends WindowAdapter
{
public void windowClosing(WindowEvent e)
{
System.exit(0);
}
}


لطفا یه نفر راهنماییم کنه ...:ناراحت::افسرده::گریه:

MSN_Issue
دوشنبه 16 آذر 1388, 17:28 عصر
دوستان کسی نیست به من کمک کنه ؟!
برای پروژه-ام خیلی به این موضوع نیاز دارم .
کمک لطفا ... :افسرده: