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

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Стирается без вызова super.paintComponent()? 
:(
    Опции темы
BezImeni
Дата 25.10.2006, 22:03 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


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

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



Если есть 
Код


public class Example extends JPanel
{
  
   boolean firstTime = true;
   ...
   public void paintComponent(Graphics g)
   {
      if (firstTime)
      {
         g.drawLine(1, 1, 100, 100);
         firstTime = false;
      }
   }
   ...
}


т.е. без вызова super.paintComponent()

   Должна ли эта линия затираться при последующих вызовах repaint() и соответственно paintComponent()?   (JPanel гаходится внутри JFrame)
И если да, как можно этого избежать, ну чтобы она оставалась smile 
PM MAIL   Вверх
LSD
Дата 25.10.2006, 22:08 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Leprechaun Software Developer
****


Профиль
Группа: Модератор
Сообщений: 15718
Регистрация: 24.3.2004
Где: Dublin

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



Цитата(BezImeni @  25.10.2006,  23:03 Найти цитируемый пост)
Должна ли эта линия затираться при последующих вызовах repaint() и соответственно paintComponent()?

Скорее всего нет. Метод paintComponent() обязан полностью отрисовать компонент.


--------------------
Disclaimer: this post contains explicit depictions of personal opinion. So, if it sounds sarcastic, don't take it seriously. If it sounds dangerous, do not try this at home or at all. And if it offends you, just don't read it.
PM MAIL WWW   Вверх
BezImeni
Дата 25.10.2006, 22:12 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


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

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



Цитата

Скорее всего нет. Метод paintComponent() обязан полностью отрисовать компонент. 


   А у меня какого-то стирается  smile 
PM MAIL   Вверх
LSD
Дата 25.10.2006, 22:19 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Leprechaun Software Developer
****


Профиль
Группа: Модератор
Сообщений: 15718
Регистрация: 24.3.2004
Где: Dublin

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



Цитата(BezImeni @  25.10.2006,  23:12 Найти цитируемый пост)
А у меня какого-то стирается 

Я не правильно выразился, я имел в виду:
Цитата
Скорее всего она не останется на экране. Метод paintComponent() обязан полностью отрисовать компонент.

Т.е. то что она стирается это нормально и закономерно.


--------------------
Disclaimer: this post contains explicit depictions of personal opinion. So, if it sounds sarcastic, don't take it seriously. If it sounds dangerous, do not try this at home or at all. And if it offends you, just don't read it.
PM MAIL WWW   Вверх
BezImeni
Дата 25.10.2006, 22:26 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


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

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



Цитата

Т.е. то что она стирается это нормально и закономерно. 


   А какая есть у меня возможность чтобы ее оставить при последующих вызовах repaint() и paintComponent()  smile Только не перерисовывая ее заново
PM MAIL   Вверх
LSD
Дата 25.10.2006, 22:33 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Leprechaun Software Developer
****


Профиль
Группа: Модератор
Сообщений: 15718
Регистрация: 24.3.2004
Где: Dublin

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



Цитата(BezImeni @  25.10.2006,  23:26 Найти цитируемый пост)
 А какая есть у меня возможность чтобы ее оставить при последующих вызовах repaint() и paintComponent()  smile Только не перерисовывая ее заново

Гарантированной возможности нет. Представь что кто-то свернет твое окно и развернет его заново, старое изображение в окне будет полностью потеряно, его надо будет отрисовать заново.

А зачем это вообще нужно?


--------------------
Disclaimer: this post contains explicit depictions of personal opinion. So, if it sounds sarcastic, don't take it seriously. If it sounds dangerous, do not try this at home or at all. And if it offends you, just don't read it.
PM MAIL WWW   Вверх
BezImeni
Дата 25.10.2006, 22:40 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


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

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



Цитата

А зачем это вообще нужно?


Есть лабиринт - рисуется он через вызовы repaint() - paintComponent(). Сначала его надо поностью отрисовать - и это нормально, а потом хочется прорисовывать только те части, которые меняются.
PM MAIL   Вверх
LSD
Дата 25.10.2006, 22:48 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Leprechaun Software Developer
****


Профиль
Группа: Модератор
Сообщений: 15718
Регистрация: 24.3.2004
Где: Dublin

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



Создай BufferedImage, прорисовывай лабиринт на нем, как тебе будет нужно. В методе paintComponent() просто рисуй этот BufferedImage. А когда тебе надо изменить часть лабиринта, измени эту часть в BufferedImage-е, а затем вызови repaint(x, y, width, heigth).


--------------------
Disclaimer: this post contains explicit depictions of personal opinion. So, if it sounds sarcastic, don't take it seriously. If it sounds dangerous, do not try this at home or at all. And if it offends you, just don't read it.
PM MAIL WWW   Вверх
newObject
Дата 26.10.2006, 10:38 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



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

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



BezImeni, прочитайте этот пост. Я считаю он Вам поможет. smile 
PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "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.0492 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


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

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