好吧,我正在製作一款名爲「Connect Four」的遊戲。我正在嘗試做的是這樣的。所以一旦你按下名爲「Human vs Computer」的按鈕,它應該會顯示「你的遊戲開始於」「3」(現在它應該等待一秒鐘然後它應該打印)「2」 (現在它應該等待一秒鐘,那麼它應該打印)「1」。如何讓JButton等待一秒?
但是,當我這樣做..它會凍結「人與計算機按鈕」,我不知道它爲什麼這樣做。那麼你能告訴我如何解決這個問題。這是我到目前爲止所嘗試的。
private class humanVsComputerButtonListener implements ActionListener {
public void actionPerformed(ActionEvent event) {
if (event.getSource() == humanVsCom) {
lblWelcome.setVisible(true);
playButton.setVisible(false);
ruleButton.setVisible(true);
quitButton.setVisible(true);
humanVsCom.setVisible(false);
multiplayer.setVisible(false);
withTimeLimit.setVisible(false);
noTimeLimit.setVisible(false);
ruleButton.setVisible(false);
quitButton.setVisible(false);
goBack.setVisible(false);
lblGameStarts.setVisible(true);
try {
Thread.sleep(5000);
}catch (Exception e) {
}
lblGameStarts.setVisible(false);
lblinThree.setVisible(true);
try {
Thread.sleep(5000);
}catch (Exception e) {
}
lblinThree.setVisible(false);
lblinTwo.setVisible(true);
try {
Thread.sleep(5000);
}catch (Exception e) {
}
lblinTwo.setVisible(false);
lblinOne.setVisible(true);
try {
Thread.sleep(5000);
}catch (Exception e) {
}
lblinOne.setVisible(false);
}
}
}
}
經過一段時間後,它會在一行中打印所有內容。
請幫我解決這個問題。謝謝。
您正在凍結整個線程。您應該考慮創建[定時器](https://docs.oracle.com/javase/8/docs/api/javax/swing/Timer.html)並在每個打勾上編輯標籤。 – dinomario10
像我如何做到這一點。我看着它的API,並遵循完全相同的事情,但它仍然給我錯誤。 –