嘿傢伙我試圖做一個匹配卡的遊戲。 如果兩張牌匹配用戶獲取一個點和卡保持可見,否則翻轉它們(或setText(「」))我做了關於擺動睡眠的研究,但我不知道如何在我的代碼中實現它。我嘗試了一切,但我無法實現它的工作。我有這個代碼主要運行。如何睡一個按鈕setText?
ActionListener buttonListener = new ActionListener() {
@Override
public void actionPerformed(ActionEvent e)
{
JButton selectedButton = (JButton)e.getSource();
for (int row = 0; row < 6;row++){
for(int col = 0; col < 6; col++){
if (buttons[row][col] == selectedButton){
flipCard(row, col);
if(stack.empty()){
stack.push(row+","+col);
}else{
String word = (String)stack.pop();
String[] ar = word.split(",");
System.out.println(ar[0] + " " + ar[1]);
if (cardList.getCardNode(row, col).getLetter() ==
cardList.getCardNode(Integer.parseInt(ar[0]),
Integer.parseInt(ar[1])).getLetter()){
System.out.println("equal");
}else{
System.out.println("not equal");
//Compiler complains
//Exception in thread "AWT-EventQueue-0" java.lang.ClassCastException: javax.swing.Timer cannot be cast to javax.swing.JButton
Timer timer = new Timer(100 ,this);
timer.setRepeats(false);
timer.start();
buttons[row][col].setText("");
buttons[Integer.parseInt(ar[0])]
[Integer.parseInt(ar[1])].setText("");
}
}
}
}
}
}
};
是什麼一個'taskPerformer'? NVM - 爲了儘快提供更好的幫助,請發佈[MCVE](http://stackoverflow.com/help/mcve)(最小完整可驗證示例)或[SSCCE](http://www.sscce.org/)(簡稱,自包含,正確的例子)。此外,源代碼中的單個空白行是所有* *所需的。 '{'之後或'}'之前的空行通常也是多餘的。 – 2015-04-01 04:50:13
*「//編譯器抱怨」* - 它說什麼?你的意思是像[這](http://stackoverflow.com/questions/16292498/swingworker-thread-sleep-or-javax-swing-timer-i-need-to-insert-a-pause/16293498# 16293498)? – MadProgrammer 2015-04-01 04:51:11
現在我想看到一個[runnable示例](https://stackoverflow.com/help/mcve),它演示了您的問題。這不是代碼轉儲,而是您正在做的事情的一個例子,它突出了您遇到的問題。這將導致更少的混淆和更好的迴應 – MadProgrammer 2015-04-01 05:18:37