图像不会出现在我的Java小程序上

时间:2013-04-01 04:46:29

标签: java eclipse image applet

嘿我正在尝试创建一个视频游戏,我正在测试是否可以在我的同事和教授之前向我请求帮助的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));
    }

}

2 个答案:

答案 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(),它使用initstartstopdestroy

http://docs.oracle.com/javase/tutorial/deployment/applet/getStarted.html

2尝试了解EDT概念

3不要覆盖paint方法

4使用ImageIO加载图片