嗨,我正在做一个相当简单的“卡拉OK”程序... 我试图用java
来改变显示的文本线程以鼠标点击开始。当没有循环,我重复点击鼠标它的作品,但当我将无限while循环添加到thread.run()它变得卡住......它什么也没做......我做错了什么? 这里是我的代码:Java线程循环Stucks程序
public class Timer extends Thread {
MainWindow window;
public int timeSec;
ArrayList<Integer> times;
public Song song;
public Timer(MainWindow window){
times = new ArrayList<Integer>();
times.add(10); // de alto
times.add(50); // el carino
times.add(70); // cuando juanita
times.add(92); // Limpia el
times.add(113); // de alto
times.add(160); // sabes
times.add(215); // la cosa esta + o.J
times.add(226); // mira
times.add(244); // ref
times.add(266); // matus
times.add(272); // Janka + krik
times.add(293); // mira
song = new Song();
this.window = window;
timeSec = 0;
//run();
}
public void start(){
run();
}
public void run(){
while (true){
try {
sleep(100);
} catch (InterruptedException e) {
e.printStackTrace();
}
timeSec++;
if (times.contains(timeSec)){
song.next();
}
window.repaint();
}
}
}
while(true)keep running?你不说? – Stultuske 2015-02-06 13:48:22
在你的run方法中,while(true){} – safaiyeh 2015-02-06 13:50:46
的目的不是它继续运行......它应该调用song.next()并重新绘制JPanel ...并且我需要它永久地运行。 .. – joasisk 2015-02-06 13:55:29