我想问个简单的问题
帮帮忙,看看下面的程序,我想很简单的实现数字不段变化的效果,但是每次都是在原来图上继续画,而不是刷新后重画,repaint方法没有用么
import java.awt.*;
import java.awt.event.*;import javax.swing.*;
import javax.swing.event.*;
public class TestThread extends JFrame implements Runnable{
JTextField t;
JButton b1;
JButton b2;
JPanel p;
int i;
public TestThread()
{
setLocation(400,400);
setSize(300,300);
setVisible(true);
}
public void run()
{
for(i=0;i<100;i++)
{
i++;
try{Thread.currentThread().sleep(1000);} catch (Exception e){}
repaint();
}
}
public void paint(Graphics g)
{
Font f1=new Font("宋体",Font.BOLD,90);
g.setFont(f1);
g.setColor(Color.RED);
String j=String.valueOf(i);
g.drawString(j,120,130);
}
public static void main(String args[])
{
TestThread test=new TestThread();
Thread s=new Thread(test);
s.start();
}
}
我还问一下,UPDATE方法要重写么,不是系统自动调用么?为什么上面的程序不好用呢,paint repaint update 三个方法到底有什么区别呀,哪个需要我自己重写呀
帮帮忙,看看下面的程序,我想很简单的实现数字不段变化的效果,但是每次都是在原来图上继续画,而不是刷新后重画,repaint方法没有用么
import java.awt.*;
import java.awt.event.*;import javax.swing.*;
import javax.swing.event.*;
public class TestThread extends JFrame implements Runnable{
JTextField t;
JButton b1;
JButton b2;
JPanel p;
int i;
public TestThread()
{
setLocation(400,400);
setSize(300,300);
setVisible(true);
}
public void run()
{
for(i=0;i<100;i++)
{
i++;
try{Thread.currentThread().sleep(1000);} catch (Exception e){}
repaint();
}
}
public void paint(Graphics g)
{
Font f1=new Font("宋体",Font.BOLD,90);
g.setFont(f1);
g.setColor(Color.RED);
String j=String.valueOf(i);
g.drawString(j,120,130);
}
public static void main(String args[])
{
TestThread test=new TestThread();
Thread s=new Thread(test);
s.start();
}
}
我还问一下,UPDATE方法要重写么,不是系统自动调用么?为什么上面的程序不好用呢,paint repaint update 三个方法到底有什么区别呀,哪个需要我自己重写呀
解决方案 »
免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货