我对java很新,并开始使用不同的线程来使用wait()或sleep()在我的代码的一部分上运行其他代码.
对于这个项目,我使用JFrame与javax.swing.*和java.awt.*进口.我想要做的是让其中一个线程(在我的代码中它是主要的,起始线程)允许玩家在tic tac toe board上选择一个空间,当他们点击它时,它将改变图标,并且然后AI将等待1秒钟,然后从我创建的第二个线程回放.
不幸的是,每当我调用ait.sleep(1000)(ait是我的线程名称)时,两个线程都会在完成执行之前等待1秒.谁能告诉我为什么睡一个线程会阻止我的整个执行?
java swing multithreading event-dispatch-thread thread-sleep
我编写了一个可以打开所有枢轴的立方体代码.现在我尝试使用Thread.sleep进行循环,但每次重新绘制它只是给我半个立方体或什么都没有(它有点闪烁和摇摇欲坠).
也许它不起作用,因为我的笔记本电脑太慢但我不认为这是这种情况.
这是代码:
import java.awt.*;
import javax.swing.*;
public class Würfel1 extends JApplet {
Container container;
Dimension Screen = new Dimension(400,400);
double c[] = new double[8];
double wx = 90; double wy = 90; double wz = 90;
public Würfel1() {
init();
}
public void init() {
this.setSize(Screen);
container = this.getContentPane();
}
public void paint(Graphics g) {
super.paint(g);
drawcube(g);
wx = wx - 2;
wy = wy + 1;
wz = wz + 3;
try {Thread.sleep(100);} catch (InterruptedException e) {e.printStackTrace();}
repaint(); …Run Code Online (Sandbox Code Playgroud)