我是一名从事家庭作业项目的学生。我花了DAYS试图获取以下代码在我的新Windows 7笔记本电脑上显示图像。我编译它并在我的旧xp pc上运行它,它工作!我真的想用我的笔记本电脑。有关如何让它显示图像的任何建议? 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();
}
}
答案 0 :(得分:1)
我不是Applet
家伙,但将cup.gif
与MoveIt.html
和MoveIt.class
放在一起似乎有效。此外,您要覆盖paint()
的{{1}}方法,而不是Applet
的方法。顺便说一句,Canvas
恰好起作用,因为Java字符串是interned,但arg == "Up"
是更可靠的谓词。