A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

用线程做了一个倒计时,但是有问题,求解决
//目标:在窗体中显示一个倒计时



import java.awt.Graphics;
import javax.swing.JFrame;

public class DaoJiShi {
        public static void main(String[] args) {
                new MyFrame("倒计时");
        }
}
class MyFrame extends JFrame implements Runnable {
        int time = 10;
        String s = "无限制";
        public MyFrame (String s) {
                super(s);
                this.setSize(200, 100);
                this.setLocation(300, 200);
                this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
                this.setVisible(true);
                new Thread(this).start();
        }
        public void paint (Graphics g) {
                g.drawString(s, 50, 50);
        }
        public void run() {
                while (true) {
                        s = time + "s";
                        time--;
                        try {
                                Thread.sleep(1000);
                        } catch (InterruptedException e) {
                                e.printStackTrace();
                        }
                        this.repaint();
                        if (time == 0) {
                                System.exit(0);
                        }
                }
        }
}

2 个回复

正序浏览
在paint方法中加上一句代码就行了:
public void paint(Graphics g) {
                g.clearRect(0, 0, 200, 100);
                g.drawString(s, 50, 50);
        }
回复 使用道具 举报
        public void paint (Graphics g) {
                 g.setColor(this.getBackground());//将画笔设为背景色
             g.fillRect(0, 0, getWidth(), getHeight());//用背景色填充窗口,摸去先前画的
             g.setColor(Color.BLACK);//将画笔设为黑色,
                 g.drawString(s, 50, 50);
        }
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马