Почему мое Java-приложение случайно зависает после запуска?

НЕ ИСПОЛЬЗУЙТЕ WHILE LOOP в начале сценария, так как условие ниже приведет к выходу из сценария и сломает цикл.

echo "Not a good time to transcode video!" && exit 0

Вы можете попробовать захватить выходной сигнал, чтобы при выходе сценария он перезапускает

##########################################################################
## CHECK TIME
############bash##############################################################
trap '<path to script> ' EXIT
time=$(date +%k%M)

if [[ "$time" -ge 1800 ]] && [[ "$time" -le 2200 ]];then
echo "Not a good time to transcode video!" && exit 0
sleep 1;
else
echo "Excellent time to transcode video!" && echo "Lets get started!"
sleep 1;
fi
##########################################################################
## CHECK TIME
##########################################################################
echo 1
echo 2
echo 3
echo 4
echo 5
startover

Примечание. Я добавляю спать 1 секунду, потому что это даст вам время для просмотра сообщения. ловушка выходного сигнала и повторный запуск скрипта действует как цикл while. Я также предполагаю, что эти коды находятся в скрипте.

0
задан ertagon2 16 January 2019 в 13:15
поделиться

1 ответ

Вы не должны пытаться рисовать / перекрашивать вещи до того, как рамка станет видимой.

Что вы можете сделать, это удалить содержимое конструктора GamePanel и поместить его в отдельный метод, например:

public void startThread() {

    Thread t = new Thread(this);
    t.start();
}

Затем запустить поток после того, как фрейм станет видимым: 116]

frame.setVisible(true);

gamePanel.startThread();

Еще лучше, избавьтесь от нити внутри панели и создайте ее в своей главной:

frame.setVisible(true);

new Thread(gamePanel).start();
0
ответ дан Arnaud 16 January 2019 в 13:15
поделиться
Другие вопросы по тегам:

Похожие вопросы: