嗨,我正在做一個相當簡單的「卡拉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