IDEA java多线程技术:while循环体中设置线程睡眠时间Thread.sleep()无效?

2025-04-08 09:08:14
推荐回答(1个)
回答1:

有效啊,为什么会无效

前后打印下时间不就知道咯

package swing;

import javax.swing.*;
import java.awt.*;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.util.Random;
import java.util.zip.CRC32;

/**
* @author wenxy
* @create 2020-05-04
*/
public class JavaSwingDownBall {

static class MyPanel extends Panel implements Runnable{
int x = 30;
int y = 30;

@Override
public void run() {
while (true){
y++;
if (y>400){
y=0;
}
try {
Thread.sleep(30);
}catch (InterruptedException e){
e.printStackTrace();
break;
}
repaint();
}
}

@Override
public void paint(Graphics g) {
g.fillOval(x,y,20,20);
}
}

public static void main(String[] args) {
Frame frame = new Frame();
frame.setSize(300,400);

MyPanel myPanel = new MyPanel();
frame.add(myPanel);
frame.setVisible(true);

Thread thread = new Thread(myPanel);
thread.start();
}
}