Java - Как получить доступ к изображению, упакованному в банку апплета - PullRequest
1 голос
/ 09 октября 2011

Я создал апплет банку.Эта банка содержит изображения в следующей папке

com\common\images\red.bmp

Теперь я хочу отобразить это изображение в апплете Swing.

private static final ImageIcon redIndicator = new ImageIcon("com\\common\\images\\red.bmp");

После этого я прикрепил redIndicator до JPanel, но я не могу увидеть это изображение.

Есть предложения?

========================================= EDITED =========================================

private static final ImageIcon marker = loadImage("com/common/images/scale.jpg");

@SuppressWarnings("unused")
private static ImageIcon loadImage(String imagePath) {

    BufferedInputStream imgStream = new BufferedInputStream(TpcHandler.class.getResourceAsStream(imagePath));
    int count = 0;

    if (imgStream != null) {

        byte buf[] = new byte[2400];

        try {
            count = imgStream.read(buf);
        } catch (java.io.IOException ioe) {
            return null;
        } finally {
            if (imgStream != null)
                try {
                    imgStream.close();
                } catch (IOException e) {
                    e.printStackTrace();
                }
        }

        if (count <= 0) {
            LOGGER.warning("Empty image file: " + imagePath);
            return null;
        }

        return new ImageIcon(Toolkit.getDefaultToolkit().createImage(buf));
    } else {
        LOGGER.warning("Couldn't find image file: " + imagePath);
        return null;
    }
}

Я получаю следующее исключение

java.io.IOException: Stream closed

в строке count = imgStream.read(buf);

Ответы [ 3 ]

2 голосов
/ 09 октября 2011

Это должно сработать (если вызывается из класса, загруженного из того же фляги):

new ImageIcon(getClass().getResource("/com/common/images/red.bmp"))
1 голос
/ 09 октября 2011

Используйте YourPanel.class.getResourceAsStream("/com/common/images/red.bmp"), прочитайте поток в byte[] и создайте ImageIcon на основе этого. (и не используйте bmps - предпочитайте png или jpeg)

0 голосов
/ 10 октября 2011

Апплеты и Изображения, которые часто задаваемые вопросы, поэтому, что касается Java-апплетов и изображений, я рекомендую прочитать один из моих предыдущих ответов надеюсь, что это немного поможет

Удачи

...