Наши проекты:
Журнал · Discuz!ML · Wiki · DRKB · Помощь проекту |
||
ПРАВИЛА | FAQ | Помощь | Поиск | Участники | Календарь | Избранное | RSS |
[3.133.112.82] |
|
Страницы: (2) [1] 2 все ( Перейти к последнему сообщению ) |
Сообщ.
#1
,
|
|
|
Не подскажут ли спецы по Жаве почему не работает метод init при написании приложения? В качестве примера кусочек кода:
import java.awt.*; import java.applet.*; public class Test extends Frame{ public boolean handleEvent(Event eventObj) { if(eventObj.id==Event.WINDOW_DESTROY) System.exit(0); return super.handleEvent(eventObj); } public void paint(Graphics g){ g.drawString("sss",100,100); } public static void main(String args[]){ Test win=new Test(); win.resize(600,400); win.show(); } } Допустим если в этом коде вписать функцию init() с установкой цвета текста и фона то ничего не происходит(остаются дефолтными). Почему так?? |
Сообщ.
#2
,
|
|
|
А ты в какой среде пишешь? В Жбилджере оно вообщето jbinit зовется. В ЖДК не знаю -- не ел... Что еще? инициализация выолняется вообще-то сама, без вызова ее из мейна (или другой функции). Она -- часть конструктора этого класса. Вот, собсно, и все мои соображения.
|
Сообщ.
#3
,
|
|
|
Цитата Iskander, 02.08.02, 18:28:23 А ты в какой среде пишешь? Я пользую Symantec Cafe Цитата Что еще? инициализация выолняется вообще-то сама, без вызова ее из мейна (или другой функции). Ну это то я понимаю но приведенный выше пример почему-то не признает init'a ... |
Сообщ.
#4
,
|
|
|
А у тебя где вообще инит находится? Не вижу я его в том классе. :-( Или ты не весь класс привел??
|
Сообщ.
#5
,
|
|
|
Конечно же не весь - не буду же несколько К текста выбрасывать сюда...
init я вытер но в принципе выглядел он так: public void init(){ setBackground(Color.black); setForeground(Color.white); } |
Сообщ.
#6
,
|
|
|
Хм... А можешь заархивировать и мне по почте скинуть? Адрес -- в профайле. Тогда я за ночь разгребу...
Кстати, попробуй-таки его переименовать в Jbinit. А еще с регистрами поиграйся обязательно (если еще не делал), ведь Init() и init() не совсем одно и то же. :-) А вот если ничто из этого уже не поможет -- высылай. :-) |
Сообщ.
#7
,
|
|
|
Цитата Iskander, 02.08.02, 19:26:55 Хм... А можешь заархивировать и мне по почте скинуть? Да смысл в том что старые классы не имеют никакого отношения к этой проге. Я просто начал писать для нее GUI ну и натолкнулся на этот глюк. Цитата Кстати, попробуй-таки его переименовать в Jbinit. А еще с регистрами поиграйся обязательно (если еще не делал), ведь Init() и init() не совсем одно и то же. :-) Jbinit не прошел - но оно и понятно все же кафе пользовалось при компилляции. В апплетах init() проходит на ура - проверил синтаксис, то есть глюк не в этом. По всей видимости это какаято фича о которой я даже не догадывался. |
Сообщ.
#8
,
|
|
|
А если поменять беэк и форе граунды в самом мейне? Поменяются?
И вообще, ты это через дебаггер смотрел? Может он туда заходит... А еще возможно: он сначала меняет их цвета, но где-то в дальнейших методах они назад тобой меняется?.. |
Сообщ.
#9
,
|
|
|
Цитата Iskander, 03.08.02, 08:21:13 А если поменять беэк и форе граунды в самом мейне? Поменяются? Да, поменяются. Просто проблема еще в том что, предположим нужно вставить текстареа(или любой другой элемент)-в мэйне ты его не добавишь, делать это по уму надо в ините - а он не срабатывает... Так что проблема тут не просто что я гдето поставил цвета (предположим в ините) а потом их сменил на дефолтные. Конечно есть другой метод - написать аппет который будет панелью управления к программе(как я писал выше апплеты понимают инит), но хотелось бы понять почему так не работает. Цитата И вообще, ты это через дебаггер смотрел? Может он туда заходит... В смысле?? |
Сообщ.
#10
,
|
|
|
Стоп. Если у тебя в ините вообще ничего не рабтает, то у тебя ни один графический объект работать не должен...
А то что я имел в виду... Ну, если уж даже новые объекты не инициализирует... Слушай, точно в инит оно не заходит? "Ничего не понимаю" (с) Колобки :-( Можешь выслать этот класс? Я его у себя погонять попробую... Гарантирую, что авторские права будут соблюдены со всей строгостью! :-) |
Сообщ.
#11
,
|
|
|
Блин ДОШЛО!!!
[move] [/move]Метод init() определен в базовом классе Applet, а у меня в проге (см выше) класс наследует класс Frame (там просто нет метода init()-вот он и не вызывается). Можно закомментировать строку import java.applet.*; - ошибки не будет! paint работает поскольку определен в классе java.awt.Component... Короче пойду читать иерархию классов заново. PS:спасибо за обсуждение. |
Сообщ.
#12
,
|
|
|
Да ладно. Делов-то. Тебе спасибо -- мне тоже на пользу пошло. И крепко пошло. :-) Впрочем, я на особого "спеца" и не претендую. :-)
Мораль: век живи, век учись... :-) |
Сообщ.
#13
,
|
|
|
И еще, да простят мне модераторы оффтопик, очень рад, что еще кто-то разнообразил жизнь раздела. :-)
Если есть пожелания к творимому мною FAQ -- чиркни, плиз, пару строк в соответствующей теме. |
Сообщ.
#14
,
|
|
|
Цитата Iskander, 03.08.02, 14:54:45 И еще, да простят мне модераторы оффтопик, очень рад, что еще кто-то разнообразил жизнь раздела. :-) Если есть пожелания к творимому мною FAQ -- чиркни, плиз, пару строк в соответствующей теме. Постараюсь конечно - но честно говоря я недавно сел Java изучать, потому еще многого не знаю. Также, полностью поддерживаю хоть какое-то оживление в данном разделе. |
Сообщ.
#15
,
|
|
|
public class Test extends Frame{
- a kakoe otnoshenie imeet init() k Frame? init() - eto life-cicle proc. iz Applet'a. ti opredelis' - chego tebe nado - applet ili application. ....speci..... |