На главную Наши проекты:
Журнал   ·   Discuz!ML   ·   Wiki   ·   DRKB   ·   Помощь проекту
ПРАВИЛА FAQ Помощь Участники Календарь Избранное RSS
msm.ru
! Следующие правила действуют в данном разделе в дополнение к общим Правилам Форума
1. Здесь обсуждается Java, а не JavaScript! Огромная просьба, по вопросам, связанным с JavaScript, SSI и им подобным обращаться в раздел WWW Masters или, на крайний случай, в Многошум.
2. В случае, если у вас возникают сомнения, в каком разделе следует задать свой вопрос, помещайте его в корневую ветку форума Java. В случае необходимости, он будет перемещен модераторами (с сохранением ссылки в корневом разделе).

3. Запрещается создавать темы с просьбой выполнить какую-то работу за автора темы. Форум является средством общения и общего поиска решения. Вашу работу за Вас никто выполнять не будет.
4. Не рекомендуется создавать несколько несвязанных вопросов в одной теме. Пожалуйста, создавайте по одной теме на вопрос.
Модераторы: dark_barker, wind
Страницы: (2) [1] 2  все  ( Перейти к последнему сообщению )  
> Application programming
    Не подскажут ли спецы по Жаве почему не работает метод 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()  с установкой цвета текста и фона то ничего не происходит(остаются дефолтными). Почему так??

      А ты в какой среде пишешь? В Жбилджере оно вообщето jbinit зовется. В ЖДК не знаю -- не ел... Что еще? инициализация выолняется вообще-то сама, без вызова ее из мейна (или другой функции). Она -- часть конструктора этого класса. Вот, собсно, и все мои соображения.
        Цитата Iskander, 02.08.02, 18:28:23
        А ты в какой среде пишешь?

        Я пользую Symantec Cafe

        Цитата

        Что еще? инициализация выолняется вообще-то сама, без вызова ее из мейна (или другой функции).

        Ну это то я понимаю но приведенный выше пример почему-то не признает init'a :(...
          А у тебя где вообще инит находится? Не вижу я его в том классе. :-( Или ты не весь класс привел??
            Конечно же не весь  - не буду же несколько К текста выбрасывать сюда...
            init я вытер но в принципе выглядел он так:

            public void init(){
             setBackground(Color.black);
             setForeground(Color.white);
            }
              Хм... А можешь заархивировать и мне по почте скинуть? Адрес -- в профайле. Тогда я за ночь разгребу...
              Кстати, попробуй-таки его переименовать в Jbinit. А еще с регистрами поиграйся обязательно (если еще не делал), ведь Init() и init() не совсем одно и то же. :-) А вот если ничто из этого уже не поможет -- высылай. :-)
                Цитата Iskander, 02.08.02, 19:26:55
                Хм... А можешь заархивировать и мне по почте скинуть?

                Да смысл в том что старые классы не имеют никакого отношения к
                этой проге. Я просто начал писать для нее GUI ну и натолкнулся на этот глюк.

                Цитата

                Кстати, попробуй-таки его переименовать в Jbinit. А еще с регистрами поиграйся обязательно (если еще не делал), ведь Init() и init() не совсем одно и то же. :-)


                Jbinit не прошел - но оно и понятно все же кафе пользовалось при компилляции.
                В апплетах init() проходит на ура - проверил синтаксис, то есть глюк не в этом.
                По всей видимости это какаято  фича о которой я даже не догадывался.
                  А если поменять беэк и форе граунды в самом мейне? Поменяются?
                  И вообще, ты это через дебаггер смотрел? Может он туда заходит...
                  А еще возможно: он сначала меняет их цвета, но где-то в дальнейших методах они назад тобой меняется?..
                    Цитата Iskander, 03.08.02, 08:21:13
                    А если поменять беэк и форе граунды в самом мейне? Поменяются?

                    Да, поменяются. Просто проблема еще в том что, предположим нужно вставить текстареа(или любой другой элемент)-в мэйне ты его не добавишь, делать это по уму надо в ините - а он не срабатывает... Так что проблема тут не просто что я гдето поставил цвета (предположим в ините) а потом их сменил на дефолтные.
                    Конечно есть другой метод - написать аппет который будет панелью управления к программе(как я писал выше апплеты понимают инит), но хотелось бы понять почему так не работает.
                    Цитата
                    И вообще, ты это через дебаггер смотрел? Может он туда заходит...

                    В смысле??
                      Стоп. Если у тебя в ините вообще ничего не рабтает, то у тебя ни один графический объект работать не должен...
                      А то что я имел в виду... Ну, если уж даже новые объекты не инициализирует... Слушай, точно в инит оно не заходит? "Ничего не понимаю" (с) Колобки :-( Можешь выслать этот класс? Я его у себя погонять попробую... Гарантирую, что авторские права будут соблюдены со всей строгостью! :-)
                        Блин ДОШЛО!!!
                        [move] :D :D :D :D :D[/move]Метод init() определен в базовом классе Applet, а у меня в проге (см выше) класс наследует класс Frame (там просто нет метода init()-вот он и не вызывается).
                        Можно закомментировать строку import java.applet.*; - ошибки не будет!
                        paint работает поскольку  определен в классе java.awt.Component...
                        Короче пойду читать иерархию классов заново.

                        PS:спасибо за обсуждение.
                          Да ладно. Делов-то. Тебе спасибо -- мне тоже на пользу пошло. И крепко пошло. :-)  Впрочем, я на особого "спеца" и не претендую. :-)

                          Мораль: век живи, век учись... :-)
                            И еще, да простят мне модераторы оффтопик, очень рад, что еще кто-то разнообразил жизнь раздела. :-)
                            Если есть пожелания к творимому мною FAQ -- чиркни, плиз, пару строк в соответствующей теме.
                              Цитата Iskander, 03.08.02, 14:54:45
                              И еще, да простят мне модераторы оффтопик, очень рад, что еще кто-то разнообразил жизнь раздела. :-)
                              Если есть пожелания к творимому мною FAQ -- чиркни, плиз, пару строк в соответствующей теме.

                              Постараюсь конечно - но честно говоря я недавно сел Java изучать, потому еще многого не знаю. Также, полностью поддерживаю хоть какое-то оживление в данном разделе.
                                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.....
                                1 пользователей читают эту тему (1 гостей и 0 скрытых пользователей)
                                0 пользователей:


                                Рейтинг@Mail.ru
                                [ Script execution time: 0,0343 ]   [ 14 queries used ]   [ Generated: 20.05.24, 09:41 GMT ]