Java 代码不';不执行
我有这段代码Java 代码不';不执行,java,Java,我有这段代码 // If we click on an unfolded card if (card.clicked == false) { clicksCount++; clickedCards[clicksCount - 1] = card; card.showCardImage(); if (clicksCount == 2) { try { Thread.sleep(1000); } catch
// If we click on an unfolded card
if (card.clicked == false) {
clicksCount++;
clickedCards[clicksCount - 1] = card;
card.showCardImage();
if (clicksCount == 2) {
try {
Thread.sleep(1000);
} catch (InterruptedException ex) {
Thread.currentThread().interrupt();
}
// Loop through clicked cards and if they don't have the
// same ID fold them
if (clickedCards[0].cardID != clickedCards[1].cardID) {
for (int k = 0; k < clickedCards.length; k++) {
clickedCards[k].setDefaultIcon();
clickedCards[k].clicked = false;
}
failedAttempts.setText("Failed Attempts: "
+ ++failedCount);
}
attemptsCount++;
attempts.setText("Attempts " + attemptsCount);
clicksCount = 0; // reset click counter
}
}
//如果我们点击一张展开的卡片
如果(card.clicked==false){
单击Scont++;
clickedCards[点击图标-1]=卡片;
card.showCardImage();
如果(单击搜索==2){
试一试{
睡眠(1000);
}捕获(中断异常例外){
Thread.currentThread().interrupt();
}
//循环浏览单击的卡片,如果它们没有
//相同的ID折叠它们
如果(clickedCards[0].cardID!=clickedCards[1].cardID){
对于(int k=0;k
这是我的pexeso游戏的功能。第一张卡显示卡的图像很好,但当我第二次单击时,它不会显示卡的图像。它只需等待,然后折叠第一张卡
我知道这是因为睡了线,但不知道该怎么办
我很乐意接受任何意见或建议 我猜这是一个Swing GUI(你从来没有告诉过我们)。如果是这样,那么您是对的:在Swing事件线程上调用
Thread.sleep(…)
将使整个GUI进入睡眠状态,包括所有GUI绘图。相反,使用设置为1000毫秒延迟的Swing定时器。在定时器的ActionListener中,您将把卡更改回原来的状态。您将通过setter方法告诉计时器不要重复,setRepeats(false)
.什么是
卡
(我的水晶球在问cardd
是否是字符串)你也可能想使用调试器自己解决(或缩小问题范围)@RC.:调试器虽然通常很有用,但在这里没有帮助,因为程序的逻辑可以正常工作,但问题的原因是,Thread.sleep(…)
冻结Swing事件调度线程(EDT),从而冻结Swing图形,这将是很难用标准调试器隔离的事情。非常感谢,这正是我想知道的:),下一次我将告诉您它是哪个gui:D