Java проблема не может найти файл изображения - PullRequest
2 голосов
/ 10 июня 2010

Я студент, работающий над домашним заданием. Я потратил ДНИ, пытаясь получить следующий код для отображения изображения на моем новом ноутбуке с Windows 7. Я скомпилировал его и запустил на своем старом компьютере xp, и он заработал! Я действительно хочу использовать свой ноутбук. Любые предложения о том, как заставить его отображать изображение? Java-код HTML и immage находятся в одном подкаталоге на моей флешке. Я попытался переместить их в каталог c: Program Files (x86) \ Java \ jdk1.5.0_02 \ bin, но он все равно не работал.

import java.awt.*;
import java.applet.*;
import java.awt.event.*;
import java.awt.image.*;

public  class MoveIt extends Applet implements ActionListener
{
 // set variables and componets
  private Image cup;
    Panel keypad = new Panel();
 public int top = 15;
 public int left = 15;
 private Button keysArray[];



 public void init()

 {

  cup = getImage(getDocumentBase(), "cup.gif");
  Canvas myCanvas = new Canvas();

  keysArray = new Button[5];
  setLayout(new BorderLayout(5,5));
  setBackground(Color.blue);

  // set up keypad layout
  keypad.setLayout(new BorderLayout(0,0));

  keysArray[0] = new Button("Up");
  keysArray[1] = new Button("Left");
  keysArray[2] = new Button("Center");
  keysArray[3] = new Button("Right");
  keysArray[4] = new Button("Down");

  // add buttons to the keypad panel

  keypad.add(keysArray[0], BorderLayout.NORTH);
  keysArray[0].addActionListener(this);
  keypad.add(keysArray[1], BorderLayout.EAST);
  keysArray[1].addActionListener(this);
  keypad.add(keysArray[2], BorderLayout.CENTER);
  keysArray[2].addActionListener(this);
  keypad.add(keysArray[3], BorderLayout.WEST);
  keysArray[3].addActionListener(this);
  keypad.add(keysArray[4], BorderLayout.SOUTH);
  keysArray[4].addActionListener(this);


  // add canvas and keypad to the BorderLayout
  add(myCanvas, BorderLayout.NORTH);
  add(keypad, BorderLayout.SOUTH);
 }

 public  void paint(Graphics g)
 {
  g.drawImage( cup, left, top, this );
 }


   public void actionPerformed(ActionEvent e)
   {
 // test for menu item clicks
  String arg = e.getActionCommand();
  if (arg == "Up")
   top -=15;
  else
   if (arg == "Down")
    top +=15;
   else
    if (arg == "Left")
     left -=15;
    else
     if (arg == "Right")
      left +=15;
     else
     {
      top = 60;
      left =125;
     }
   repaint();
   }
}

1 Ответ

1 голос
/ 10 июня 2010

Я не Applet парень, но, похоже, сработало cup.gif вместе с MoveIt.html и MoveIt.class. Кроме того, вы переопределяете paint() метод Applet, а не Canvas. Кроме того, arg == "Up" работает, потому что строки Java интернированы , но "Up".equals(arg) является более надежным предикатом.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...