簡體   English   中英

如何在小程序上繪制圖像

[英]How to draw an image on the applet

public class ImageExample2 extends Applet
{

    BufferedImage bi;


    public void init ()
    {

        resize (500, 500);

        try
        {

            BufferedImage bi = ImageIO.read (new File ("G:\\Java\\WhatDotColour\\Pacman.PNG"));
        }
        catch (java.io.IOException e)
        {
            e.printStackTrace ();
        }
    }


    public void paint (Graphics g)
    {

        g.drawImage (bi, 20, 140, this); //.drawImage(in, 0, 0, null);

    }
}

每當我嘗試運行它時,它都會給我一個空指針異常。 我該如何解決?

不要AppletFile混合使用。 它們就像油和水。 Applet在瀏覽器中運行。 始終使用相對路徑。

使用Applet#getCodeBase()獲取基本URL。 這是包含此小程序的目錄的URL。

示例代碼:(查看getCodeBase()方法的輸出並修改圖像路徑)

import java.applet.Applet;
import java.awt.Graphics;
import java.awt.Image;

public class ImageExample2 extends Applet {

    private Image bi;

    public void init() {

        resize(500, 500);

        System.out.println(getCodeBase()); // file:/D:/Workspace/JavaProject/bin/

        // This the actual code that should be used to read the image in Applet
        bi = getImage(getCodeBase(), "images/222.png");
    }

    public void paint(Graphics g) {
        g.drawImage(bi, 20, 140, this);

    }
}

如果您使用的是Windows和Eclipse IDE,請查看下面顯示的屏幕快照,以獲取上面的示例代碼圖像路徑。

在此處輸入圖片說明

更改:

BufferedImage bi=ImageIO.read (new File ("G:\\Java\\WhatDotColour\\Pacman.PNG"));

bi = ImageIO.read (new File ("G:\\Java\\WhatDotColour\\Pacman.PNG"));

並改變

g.drawImage (bi, 20, 140, this); //.drawImage(in, 0, 0, null);

if (bi!=null) g.drawImage (bi, 20, 140, this); //.drawImage(in, 0, 0, null);

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM