Как отобразить BufferedImage в JApplet - PullRequest
0 голосов
/ 24 января 2011

Изображения не отображаются в japplet.

  public void setCharacter(String type)
 {
  try
  {
   character = ImageIO.read(new File(type));
  }
  catch (Exception e)
  {
   e.printStackTrace();
  }
 }

Вот так я получаю файл.

public void paint(Graphics g) {
  Graphics2D g2 = (Graphics2D) g;

  g2.setBackground(Color.BLACK);

  switch (manipulateCase)
  {
   case 0:
    g2.setColor(Color.BLACK);
    g2.fill(new Rectangle(0, 0, xBound, yBound)); // painting the background.
    break;

   case 1:
    normandy.delete(g2); // delete previous position
    ImageIcon stuff = new ImageIcon("spaceship.jpg");
    stuff.paintIcon(this, g2, 0, 0);
    //g2.drawImage(normandy.getImage(), normandy.getBounds().x, normandy.getBounds().y, null); // draw new position
    break;

   /*case 2:
    for (int i = 0; i < aLevel.getInvaders().length; i++) {
     g2.fill(aLevel.getInvaders()[i].getCharacter());
    }
    break;

   case 3:
    g2.setColor(Color.WHITE);

    if (bullets.getBullets().size() > 0)
     for (int i = 0; i < bullets.getBullets().size(); i++) {
      g2.fill(bullets.getBullets().get(i).getBullet());
      System.out.println("BULLETS: "
        + bullets.getBullets().size());
     }
    break;

   case 4:
    break; */
  }

 }

Код выше есть в апплете.Что я делаю неправильно?Почему я получаю ошибку.«Невозможно прочитать входной файл!»

Любая помощь будет признательна.

Спасибо, blargman

Ответы [ 2 ]

1 голос
/ 24 января 2011

Где находится файл? Апплет, работающий в браузере, не может прочитать файл на вашем компьютере, он может получить к нему доступ только через URL. Он может получить доступ к файлу на удаленном компьютере, но обычно (по уважительной причине) не разрешается. Поэтому замените new ImageIcon(String filename) на new ImageIcon(URL location).

0 голосов
/ 24 января 2011

Произвольная окраска не должна выполняться путем переопределения метода paint ().

Начните с прочтения раздела из учебника по Swing по Как сделать апплеты для получения более подробной информации о написании апплета. Также есть раздел «Загрузка изображений в апплеты».

Я также согласен с тем, что научиться рисовать проще всего на практике с простым приложением, использующим JFrame. Вы можете прочитать раздел из учебника по Swing "Custom Painting" для большего количества примеров. Учебник полон отличной информации и примеров.

...