Модераторы: LSD, AntonSaburov
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Отрисовка круга, Не будет ли забиваться память? 
:(
    Опции темы
Su_
Дата 17.2.2010, 18:42 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 386
Регистрация: 1.8.2007

Репутация: нет
Всего: нет



Всем доброго дня.
Решил сделать, мигающий круг по координатам.. Сразу стал вопрос с repaint() . Но я сделал так : у меня есть таймер ,который тикает каждую секнуду , обновляя время на панели , я в него запихнул такой код:
Код

 while(true) {
           setTime();
           if(drawing==1)
           {
                     gr.setColor(Color.RED);
                 preview_sectors();
                     drawing=2;
             
           }else if(drawing==2)
           {
            // gr.clearRect(lblImage.getX(), lblImage.getY(), 70, 70);
               gr.setColor(Color.BLUE);
              preview_sectors();
              drawing=1;
           }else if (drawing==3)
           {
        repaint();
        drawing=0;
           }

метод preview_sectors рисует кружки :
Код

public void preview_sectors()
 {
gr.drawOval(x-(x_height/2), y-(y_height/2),x_height, y_height);
     }
     


В итоге , по кнопочке делаем глобальную переменную drawing=1 и она начинает мигать, =3 останавливается и стирается.. 
Пытался сделать через clearRect, но кружок отображается на картинке , и прямоугольник затирает и её.... Все вроде бы работает как нужно, но тут Вопрос??? Будет ли такой ход давать нагрузку на память? ( ведь по логике мы наслаиваем круги разных цветов) ... Заранее спасибо.!


--------------------
user posted image

PM MAIL WWW   Вверх
Christoph
Дата 17.2.2010, 22:25 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 667
Регистрация: 23.1.2008
Где: Харьков

Репутация: 3
Всего: 11



Я плохо разбираюсь в Java, но может этот код выполнять в отдельном потоке?


--------------------
user posted image
PM MAIL ICQ   Вверх
Su_
Дата 17.2.2010, 23:18 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 386
Регистрация: 1.8.2007

Репутация: нет
Всего: нет



да конечно) иначе бы весь SWING виснул бы , но вопрос заключается немного не в этом.. Тут идет наслаивание картинок , то синяя , то красная - создается эффект мигающего круга,  вопрос будет ли каждый объект сохранятся в памяти и в итоге перегружать её ?


--------------------
user posted image

PM MAIL WWW   Вверх
jk1
Дата 17.2.2010, 23:25 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Участник
Сообщений: 1168
Регистрация: 17.10.2008
Где: Санкт-Петербург

Репутация: 21
Всего: 75



Цитата

будет ли каждый объект сохранятся в памяти и в итоге перегружать её ? 

Если вы будете сохранять ссылки на эти объекты, то они будут оставаться в памяти. Если нет, сборщик мусора их соберет.

Если это вас не убеждает, воспользуйтесь профайлером. Это специальный инструмент для мониторинга поведения работающего приложения, в том числе и потребления оперативной памяти. Для ваших задач более чем достаточно стандартного профайлера из комплекта JDK - VisualVM.
В этой статье подробно описано, как им воспользоваться.


--------------------
Opinions are like assholes — everybody has one
PM MAIL   Вверх
Su_
Дата 18.2.2010, 00:39 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 386
Регистрация: 1.8.2007

Репутация: нет
Всего: нет



спасибо ,посмотрю. А можно ли как то в ручную удалить объект , типа Oval?


--------------------
user posted image

PM MAIL WWW   Вверх
Su_
Дата 18.2.2010, 02:32 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 386
Регистрация: 1.8.2007

Репутация: нет
Всего: нет



user posted image

Программка очень полезная, спасибо, а главное удобная..  Вот такой результат получил , только при другой активности программы есть скачок CPU, а если оставить просто мигание , то CPu идет ровно, по крайне мере не растет. Думаю что можно сделать вывод, что для реализации подобной анимации , такой метод годится)


--------------------
user posted image

PM MAIL WWW   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Java"
LSD   AntonSaburov
powerOn   jk1
  • Прежде, чем задать вопрос, прочтите это!
  • Книги по Java собираются здесь.
  • Документация и ресурсы по Java находятся здесь.
  • Используйте теги [code=java][/code] для подсветки кода. Используйтe чекбокс "транслит", если у Вас нет русских шрифтов.
  • Помечайте свой вопрос как решённый, если на него получен ответ. Ссылка "Пометить как решённый" находится над первым постом.
  • Действия модераторов можно обсудить здесь.
  • FAQ раздела лежит здесь.

Если Вам помогли, и атмосфера форума Вам понравилась, то заходите к нам чаще! С уважением, LSD, AntonSaburov, powerOn, jk1.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Java: GUI и Java FX приложения | Следующая тема »


 




[ Время генерации скрипта: 0.0440 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.