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;
}
Загрузка картинок в аплете
http://astha.8m.net/CPwJ/lab6-2.html (если будет ругаться антивирусник, то там вирусов нет, там есть постоянно всплывающие окна рекламы). Скачал код, запустил, но появлися просто белый фон апплета. Апплет вроде работает, так как систем оут идет, но вот картинок нет. Что делать? Код не менял?
Картинки грузяться функцией:
у меня они лежат в том же каталоге, что и программа, в подкаталоге img
Альтернативное место, где можно взять код http://www.tud.ttu.ee/material/kallik/JOOP/Ylesanded.Zadachi/Dinner/ там же есть и картинки! помогите!! я уже неделю долблюсь, в чем проблемма!:(
Здравствуйте, делаю задание по коду апплета Dining Philosophers scenario
Картинки грузяться функцией:
Код:
у меня они лежат в том же каталоге, что и программа, в подкаталоге img
Альтернативное место, где можно взять код http://www.tud.ttu.ee/material/kallik/JOOP/Ylesanded.Zadachi/Dinner/ там же есть и картинки! помогите!! я уже неделю долблюсь, в чем проблемма!:(
Код:
String filename = "/img/" + name + i + ".gif";
да! картинки грузятся, программа работает, так как все функции систем оут вывожу, но ничего не видно. Я уже и mediaTraker пробовал и ImageIcon, не помогает...но он должне работать!!:(
Цитата: ljevik
да! картинки грузятся, программа работает, так как все функции систем оут вывожу, но ничего не видно.
Ну если ты сам говоришь, что у тебя картинки грузятся - зачем ты код загрузки картинок приводишь?!
Лучше бы код их прорисовки запостил.
рисуетс здесь:
Код:
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();
}
}
}
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();
}
}
}
2. пробуем вызвать super.paint(g);
super.paint(g) ничего не дал при вызове в самом начале в функции paint и вместо repaint тоже не сработало.:(
Полчаса разбирал...
Не понял, что автор хотел сказать этим примером :(
Картинки из файла честно грузятся, но не рисуются.
Проблема, скорее всего в методе g.drawImage( image, radius, radius, this );
Т.к. не соблюден основной принцип: KISS, то лучше найти какой-нибудь другой пример.
а заменить чем можно её? :(
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 раза)
можно было еще и тут посмотреть.
Будет ругаться, что пароль нужен - нажми отмену) несколько раз:)))) пока е ему не надоест (2-3 раза)
можно было еще и тут посмотреть.
а ты не знаешь, как добавлять в эклипсе сурсы к пакеджу или проекту? Я хочу попробовать добавить папку с картинками, но add new cource folder е дает мне такой возможности, а если просто как add new folder, то ничего не проиходит.
предлагаю вероломно скопировать папку с изображениями в директорию проекта с помощью explorer'a.
/JOOP/src/dinner/img
Мне просто сказали, что когда аплеты компилируешь, то чтобы загружались картинки, нужно добавить сурсы к проекту. Потому что если этот апплет выкладывать на вебстраницу, то все работает, а вот в эклипсе пусто.
А почему бы не скопировать в /JOOP/img/
не помогате:mad: :mad: :mad: :mad: