![]() |
Модераторы: LSD, AntonSaburov |
![]() ![]() ![]() |
|
monax |
|
||||
Шустрый ![]() Профиль Группа: Участник Сообщений: 125 Регистрация: 9.6.2005 Репутация: нет Всего: 4 |
Заинтересовал вопрос, как правильно рисовать в swing. В одной книге нашёл описание как это делать, написал два класса. Потом попробовал заменить paintComponent на paint. Работает по-прежнему. Хотя есть разница. Если в классе Screen убрать вызов super(); из конструктора, то при использовании paintComponent во время завершения апплета вылетают исключения, при использовании paint() этого не происходит.
Всё-таки хотелось бы знать, как правильнее.
--------------------
Лаборатория программиста |
||||
|
|||||
LSD |
|
|||
![]() Leprechaun Software Developer ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 15718 Регистрация: 24.3.2004 Где: Dublin Репутация: 9 Всего: 538 |
Лучше использовать 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. |
|||
|
||||
monax |
|
||||||
Шустрый ![]() Профиль Группа: Участник Сообщений: 125 Регистрация: 9.6.2005 Репутация: нет Всего: 4 |
Но это если вместо
написать это
Исключение появляется при завершении работы апплета, то есть отловил я это в консоли. --------------------
Лаборатория программиста |
||||||
|
|||||||
newObject |
|
|||
![]() Новичок Профиль Группа: Участник Сообщений: 42 Регистрация: 29.6.2006 Репутация: 1 Всего: 2 |
Во че нашел (случайно, до этого как то не заострял внимание, ЗЛО копи-паста
![]()
Полный текст здесь А эксепшен валится скорее всего из-за того что тяжелый представитель awt не находит легкой пары JPanel, которая инициализируется вызовом конструктора без параметров JPanel ( super(); ). |
|||
|
||||
LSD |
|
|||
![]() Leprechaun Software Developer ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 15718 Регистрация: 24.3.2004 Где: Dublin Репутация: 9 Всего: 538 |
1. конструктор суперкласса вызывается всегда, независимо от того написал его вызов программист или нет 2. Screen не тяжеловестный копмонент. -------------------- 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. |
|||
|
||||
newObject |
|
|||
![]() Новичок Профиль Группа: Участник Сообщений: 42 Регистрация: 29.6.2006 Репутация: 1 Всего: 2 |
1. Я не говорил что Screen тяжеловесный компонент. 2. По поводу конструктора, это да, нагнал. Подзабыл маленько ООП. И всетаки по поводу эксепшена, я не нашел четкого ответа что это может быть, но практически все говорят о баге в версии 1.3.0 |
|||
|
||||
Just_Girl |
|
|||
![]() Новичок Профиль Группа: Участник Сообщений: 21 Регистрация: 6.8.2007 Репутация: нет Всего: нет |
You sometimes see code that overrides paint() instead of paintComponent().
This was necessary in the older AWT, however in Swing paint() calls three methods: paintComponent(), paintBorder(), and paintChildren. The general rule is to override paintComponent() if you're using Swing (JComponent, JPanel, JApplet) and paint() if you're using one of the AWT classes (Applet, Canvas). |
|||
|
||||
![]() ![]() ![]() |
Правила форума "Java" | |
|
Если Вам помогли, и атмосфера форума Вам понравилась, то заходите к нам чаще! С уважением, LSD, AntonSaburov, powerOn, tux. |
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей) | |
0 Пользователей: | |
« Предыдущая тема | Java: Апплеты | Следующая тема » |
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |