Как убить Java-апплет в цикле, когда браузер закрыт? - PullRequest
0 голосов
/ 12 июня 2011

У меня есть Java-апплет для показа изображений. У меня есть некоторое время true loop в paint (), чтобы постоянно получать новые изображения через сокет tcp / ip. Теперь у меня проблема в том, что приложение все еще запрашивает новые изображения с сервера, даже когда вкладка закрыта. Как я могу это исправить?

Ответы [ 3 ]

1 голос
/ 13 июня 2011

Просто чтобы прояснить:

У меня есть while(true) петля в paint(), чтобы постоянно получать новые изображения через сокет tcp / ip.* Не делай этого .Метод рисования никогда не должен блокироваться в течение более длительного периода времени.Он должен только рисовать ваши изображения, больше ничего.(Пока работает метод рисования, ничто другое в вашем графическом интерфейсе не может ничего сделать. Это может не иметь решающего значения для вашего апплета, но это будет для более сложных программ.)

Если вам нужно загрузить новыйimages, сделайте это в отдельном потоке, поместите изображение в переменную и в конце вызовите repaint().Затем метод рисования берет изображение из переменной и выводит его на экран.

0 голосов
/ 12 июня 2011

Переопределить Applet.destroy () .

Вызывается браузером или средством просмотра апплета, чтобы сообщить этому апплету, что он восстанавливается и что он должен уничтожить все ресурсы, которые онвыделил...

0 голосов
/ 12 июня 2011
<script>
function closeIt()
{
  document.<appletContainer>.APPLETID.loaded = 0;
}
window.onbeforeunload = closeIt;
window.onunload = closeIt;
</script>

и добавьте public int loaded = 1; к коду вашего апплета

Теперь проверьте значение загруженной переменной перед выполнением кода в вашем апплете.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...