Java: временная задержка на определенной позиции - работает не в том месте

Я не знаю, действительно ли заголовок проясняет мою проблему. Я делаю приложение для карточной игры. Когда пользователь и компьютер разыграли свои карты, они должны оставаться на экране некоторое время, пока компьютер не разыграет следующую карту. Я попытался решить эту проблему, используя thread.sleep() в try catch. И он в основном делает то, что должен делать, но это не то, что я хочу. Задержка не между тем, когда компьютер играет одну карту, а затем отключает вторую. Это между нажатием пользователем кнопки (для карты) и появлением этой карты на экране.

Вот соответствующий код:

    private void jButton1ActionPerformed(java.awt.event.ActionEvent evt) {                                         
    jLabel1.setIcon(//new Icon of the card);
    jPanel1.remove(jButton1);
    jLabel2.setIcon(//new Icon of the card);
    if(//proving whether the computer played the highest amount off)
    {
        disableButtons();

            sleep();//waiting for a certain time...
            playCard();//...until playing the next card off
    }
}                                        




       public void sleep()
{   

        try
        {
            Thread.sleep(500);
        } catch (InterruptedException e)
        {
        }
}

person user3578062    schedule 28.04.2014    source источник
comment
Пожалуйста, отправьте свой код для помощи   -  person niiraj874u    schedule 28.04.2014
comment
Я не думаю, что мы сможем помочь вам без небольшого количества кода. Кроме того, полезно знать, какой пользовательский интерфейс вы используете? Приставка? Качать?   -  person wonderb0lt    schedule 28.04.2014
comment
Без какого-либо фактического кода вашу проблему трудно решить. Может быть, вы могли бы добавить некоторые фрагменты кода?   -  person nils    schedule 28.04.2014


Ответы (1)


Добро пожаловать в StackOverflow. Если вы спите в потоке пользовательского интерфейса, пользовательский интерфейс не будет отражать все ваши команды рисования, пока вы снова не войдете в основной цикл. Посмотрите на таймеры свинга.

person Tassos Bassoukos    schedule 28.04.2014