嘿我正在尝试创建一个视频游戏,我正在测试是否可以在我的同事和教授之前向我请求帮助的applet上出现精灵或图像,但他们没有似乎有所帮助。我不知道我的图像是否位于错误的位置,或者我的代码是否被窃听过,但如果有人看看它我会很感激谢谢!哦!顺便说一句,我是用Java编程的,而我正在使用Eclipse JUNO。
enter code here
package meh;
import java.awt.*;
import javax.swing.JApplet;
import javax.swing.ImageIcon;
public class Draw extends JApplet{
public static void main(String[] args)
{
Draw test = new Draw();
}
private Image exImage;
private boolean imagesLoaded;
public void run()
{
imagesLoaded = false;
try
{
loadImages();
try
{
Thread.sleep(10000);
}
catch(InterruptedException ex){}
}
finally{}
}
public void loadImages()
{
exImage = loadImage("C:/Users/Temp/workspace/From Scratch/bin/Ma_rn_0");
imagesLoaded = true;
repaint();
}
private Image loadImage(String fileName)
{
return new ImageIcon(fileName).getImage();
}
public void paint(Graphics g)
{
if(g instanceof Graphics2D)
{
Graphics2D g2 = (Graphics2D)g;
g2.setRenderingHint(RenderingHints.KEY_TEXT_ANTIALIASING, RenderingHints.VALUE_TEXT_ANTIALIAS_ON);
}
if(imagesLoaded)
{
drawImage(g, exImage,0,0, null);
}
else
{
g.drawString("Loading...", 5, 12);
}
}
public void drawImage(Graphics g, Image image, int x, int y, String caption)
{
g.drawImage(image, x, y, null);
g.drawString(caption, x+5, y + 12 +image.getHeight(null));
}
}
答案 0 :(得分:1)
除非签名,否则applet只能从它们发起的位置加载图像。在这里,您尝试从本地磁盘加载图像。 applet资源的所有初始化都应该从init
方法完成。可以从部署它们的同一JAR文件中将映像作为资源加载。你可以做到
Image exImage = ImageIO.read(getClass().getResourceAsStream("images/MyImage.jpg"))
答案 1 :(得分:0)
1 public static void main(String[] args)
小程序不应该有main()
,它使用init
,start
,stop
和destroy
。
http://docs.oracle.com/javase/tutorial/deployment/applet/getStarted.html
2尝试了解EDT
概念
3不要覆盖paint
方法
4使用ImageIO
加载图片