我是从事家庭作业项目的学生。我花了几天的时间尝试获取以下代码,以在新的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();
}
}
最佳答案
我不是Applet
家伙,而是将cup.gif
与MoveIt.html
和MoveIt.class
似乎一起工作。另外,您将覆盖paint()
的Applet
方法,而不是Canvas
的方法。顺便说一句,由于Java字符串是interned,所以arg == "Up"
起作用了,但是"Up".equals(arg)
是更可靠的谓词。