Справочник функций

Ваш аккаунт

Войти через: 
Забыли пароль?
Регистрация
Информацию о новых материалах можно получать и без регистрации:

Почтовая рассылка

Подписчиков: -1
Последний выпуск: 19.06.2015

Загрузка картинок в аплете

10K
27 марта 2007 года
ljevik
48 / / 02.10.2006
Здравствуйте, делаю задание по коду апплета Dining Philosophers scenario http://astha.8m.net/CPwJ/lab6-2.html (если будет ругаться антивирусник, то там вирусов нет, там есть постоянно всплывающие окна рекламы). Скачал код, запустил, но появлися просто белый фон апплета. Апплет вроде работает, так как систем оут идет, но вот картинок нет. Что делать? Код не менял?
Картинки грузяться функцией:

 
Код:
private Image[] loadImages( String name, int num )
   {
       Image[] images = new Image[num];
       for ( int i = 0; i < num; i++ )
       {
           String filename = "img/" + name + i + ".gif";
           images = getImage( getDocumentBase(), filename );
       }
       return images;
   }


у меня они лежат в том же каталоге, что и программа, в подкаталоге img
Альтернативное место, где можно взять код http://www.tud.ttu.ee/material/kallik/JOOP/Ylesanded.Zadachi/Dinner/ там же есть и картинки! помогите!! я уже неделю долблюсь, в чем проблемма!:(
6.6K
27 марта 2007 года
Aoli
185 / / 22.01.2007
пробовал писать так?
 
Код:
String filename = "/img/" + name + i + ".gif";
10K
28 марта 2007 года
ljevik
48 / / 02.10.2006
да! картинки грузятся, программа работает, так как все функции систем оут вывожу, но ничего не видно. Я уже и mediaTraker пробовал и ImageIcon, не помогает...но он должне работать!!:(
6.6K
28 марта 2007 года
Aoli
185 / / 22.01.2007
Цитата: ljevik
да! картинки грузятся, программа работает, так как все функции систем оут вывожу, но ничего не видно.


Ну если ты сам говоришь, что у тебя картинки грузятся - зачем ты код загрузки картинок приводишь?!
Лучше бы код их прорисовки запостил.

10K
28 марта 2007 года
ljevik
48 / / 02.10.2006
:) А, сорри...

рисуетс здесь:
Код:
class AnimationCanvas extends Canvas {

    public void paint( Graphics g ){
           // draw philosophers
           boolean deadlock = true;
           for ( int i = 0; i < nphils; i++ ) {
               Image image = null;
               int x = (int) (radius + 70 + (radius+35)
                       * Math.cos(2*Math.PI*(i+0.5)/nphils))-35;
               int y = (int) (radius + 70 + (radius+35)
                       * Math.sin(2*Math.PI*(i+0.5)/nphils))-35;
               switch ( philosophers.state() ) {
                   case Philosopher.THINKING:
                       image = philImages[0];
                       deadlock = false;
                       break;
                   case Philosopher.TAKING_FIRST_FORK_LEFT:
                       //Adjust left-right orientation due to circular position
                       if (i+0.5 > (nphils/2))
                           image = philImages[1];
                       else
                           image = philImages[2];
                       deadlock = false;
                       break;
                   case Philosopher.TAKING_FIRST_FORK_RIGHT:
                       //Adjust left-right orientation due to circular position
                       if (i+0.5 > (nphils/2))
                           image = philImages[2];
                       else
                           image = philImages[1];
                       deadlock = false;
                       break;
                   case Philosopher.TAKING_SECOND_FORK_RIGHT:
                       //Adjust left-right orientation due to circular position
                       if (i+0.5 > (nphils/2))
                           image = philImages[3];
                       else
                           image = philImages[4];
                       break;
                   case Philosopher.TAKING_SECOND_FORK_LEFT:
                       //Adjust left-right  orientation due to circular position
                       if (i+0.5 > (nphils/2))
                           image = philImages[4];
                       else
                           image = philImages[3];
                       break;
                   case Philosopher.EATING:
                       image = philImages[5];
                       deadlock = false;
                       break;
               }
               g.drawImage( image, x, y, this );
           }
           // draw forks
           for ( int i = 0; i < nphils; i++ ) {
               Image image = forkImages[0];
               if ( forks.taken() ) image = forkImages[1];
               else deadlock = false;
               int x = (int) (radius + 70 + (radius+15)
                       * Math.cos(2*Math.PI*(i)/nphils))-15;
               int y = (int) (radius + 70 + (radius+15)
                       * Math.sin(2*Math.PI*(i)/nphils))-15;    
               g.drawImage( image, x, y , this );
           }
           // draw table
           Image image = tableImages[0];
           g.drawImage( image, radius, radius, this );

           // Check deadlock
           if (deadlock) {
               g.setColor(new Color(255,0,0));
               g.setFont(new Font("ARIAL",Font.BOLD,30));
               g.drawString( "DEADLOCK",radius-15,radius+80);
           }
           else {
               // Schedule repaint applet
               try { Thread.sleep( 100 ); }
               catch ( InterruptedException e ) {}
               repaint();
           }
       }
   }
6.6K
28 марта 2007 года
Aoli
185 / / 22.01.2007
1. идем в класс Canvas и смотрим, что делает метод repaint();
2. пробуем вызвать super.paint(g);
10K
29 марта 2007 года
ljevik
48 / / 02.10.2006
:confused: я слепой и не вижу в канвасе repaint() :(
super.paint(g) ничего не дал при вызове в самом начале в функции paint и вместо repaint тоже не сработало.:(
6.6K
31 марта 2007 года
Aoli
185 / / 22.01.2007
Я вот тут поразбирал твой пример.
Полчаса разбирал...
Не понял, что автор хотел сказать этим примером :(
Картинки из файла честно грузятся, но не рисуются.
Проблема, скорее всего в методе g.drawImage( image, radius, radius, this );
Т.к. не соблюден основной принцип: KISS, то лучше найти какой-нибудь другой пример.
10K
01 апреля 2007 года
ljevik
48 / / 02.10.2006
я тоже не знаю, что аффтар хотел этим сказать:mad:
а заменить чем можно её? :(
6.6K
02 апреля 2007 года
Aoli
185 / / 22.01.2007
http://66.102.9.104/search?q=cache:8eScJCCm_YcJ:www.javable.com/tutorials/tjt/uiswing/components/applet.html+applet+%D0%BF%D1%80%D0%B8%D0%BC%D0%B5%D1%80+Image&hl=ru&ct=clnk&cd=2&gl=ru&client=firefox-a
Будет ругаться, что пароль нужен - нажми отмену) несколько раз:)))) пока е ему не надоест (2-3 раза)
можно было еще и тут посмотреть.
10K
02 апреля 2007 года
ljevik
48 / / 02.10.2006
а ты не знаешь, как добавлять в эклипсе сурсы к пакеджу или проекту? Я хочу попробовать добавить папку с картинками, но add new cource folder е дает мне такой возможности, а если просто как add new folder, то ничего не проиходит.
6.6K
02 апреля 2007 года
Aoli
185 / / 22.01.2007
предлагаю вероломно скопировать папку с изображениями в директорию проекта с помощью explorer'a.
10K
02 апреля 2007 года
ljevik
48 / / 02.10.2006
а ты вероломный:) , папка лежит в той же директории:
/JOOP/src/dinner/img

Мне просто сказали, что когда аплеты компилируешь, то чтобы загружались картинки, нужно добавить сурсы к проекту. Потому что если этот апплет выкладывать на вебстраницу, то все работает, а вот в эклипсе пусто.
6.6K
03 апреля 2007 года
Aoli
185 / / 22.01.2007
А почему бы не скопировать в /JOOP/img/
10K
03 апреля 2007 года
ljevik
48 / / 02.10.2006
не помогате:mad: :mad: :mad: :mad:
Реклама на сайте | Обмен ссылками | Ссылки | Экспорт (RSS) | Контакты
Добавить статью | Добавить исходник | Добавить хостинг-провайдера | Добавить сайт в каталог