У меня есть школьный проект, который я делаю, в котором я должен заставить свой код скрыть кнопку, затем спать, а затем продолжить, но она никогда не скрывает кнопку.
У меня есть один класс, которыйзапускается нажатием кнопки, затем запускает другой метод, который должен скрыть кнопку, а затем запускает метод в другом классе, который выполняет кучу вещей, которые он делает отлично, а затем запускает 3-й метод в 3-м классе,где первое, что он должен сделать, это сон, но он спит, прежде чем скрыть мою кнопку, и полностью пропускает скрытие моей кнопки.
Вот часть кода (не обращайте внимания на датские значения / имена методов):
public void turncard(final int navn,boolean spiller){
knap.setVisible(false);
EqualCheck.storevalue(this,spiller);
}
я знаю, что эта часть окружена символом if .. но она вызывается вот так.
if(spiller){ //tester om det er spilleren der har vendt kort,
kort.repaint(); //og hvis det er, så starter den computerens
Main.spillet.computertur(); //tur.
}
и затем при запуске метода computertur
public void computertur() {
for(int i = 0; i < kortene.size(); i++) {
kortene.get(i).knap.setEnabled(false);
}
try {
Thread.sleep(2000);
} catch ( Exception e) {
System.out.println("sleep failed.");
}
Я читал о команде invokeAndWait
, которая должна быть лучше для EDT: s, но как я могу использовать ее, чтобы приостановить mythread
... или даже, лучше вопрос, почему нет?скрыть кнопку?:) Я имею в виду, что в моей голове я звоню setVisible(false)
, прежде чем что-то еще спрячет, прежде чем что-то еще сделает .. Почему не так?