VerySource

 找回密码
 立即注册
搜索
热搜: 活动 交友 discuz
查看: 1061|回复: 6

j2ME中图片的加载路径问题,有完整的问题描述

[复制链接]

1

主题

3

帖子

3.00

积分

新手上路

Rank: 1

积分
3.00
发表于 2020-11-30 18:00:01 | 显示全部楼层 |阅读模式
classpath:E:\JBuilder\jdk1.4\lib\tools.jar;E:\JBuilder\jdk1.4\lib\dt.jar;.
工程路径:D:\javawork\j2me\SlideshowMidlet
图片存放位置:D:\javawork\j2me\SlideshowMidlet\
程序在JBuilder中编写,编译,运行
在运行的时候,抛出异常:Failed loading images!
源程序代码如下:(有二个类,运行类没有发上来)
import javax.microedition.lcdui.*;
import java.io.*;

public class SSCanvas extends Canvas {
    private Display display;
    private Image [] slides;
    private String [] captions = {"A","B","C","D","E"};
    private int curSlide = 0;

    public SSCanvas(Display d){
        super();
        display = d;
    //图片加载程序开始
        try {
            slides = new Image[5];
            slides[0] = Image.createImage("/A.gif");
            slides[1] = Image.createImage("/B.gif");
            slides[2] = Image.createImage("/C.gif");
            slides[3] = Image.createImage("/D.gif");
            slides[4] = Image.createImage("/E.gif");
        } catch (IOException e) {
            System.err.println("Failed loading images!");
        }//图片加载结束
    }
      void start(){
          display.setCurrent(this);
          repaint();
        }
      public void keyPressed(int keyCode){
          int action =getGameAction(keyCode);

          switch(action){
             case LEFT:
                 if(-- curSlide < 0 ){
                     curSlide = slides.length - 1;
                 }
                 repaint();
                 break;

            case RIGHT:
                if(++ curSlide >= slides.length){
                    curSlide = 0;
                }
                repaint();
                break;
          }
      }
    public void paint(Graphics g){
        g.setColor(255,255,255);
        g.fillRect(0,0,getWidth(),getHeight());

        g.drawImage(slides[curSlide],getWidth()/2,getHeight()/2,Graphics.HCENTER | Graphics.VCENTER);
        Font f = Font.getFont(Font.FACE_PROPORTIONAL,Font.STYLE_BOLD,Font.SIZE_MEDIUM);
        g.setFont(f);

        g.setColor(0,0,0);
        g.drawString(captions[curSlide],getWidth()/2,0,Graphics.HCENTER | Graphics.TOP);
    }
}
回复

使用道具 举报

0

主题

12

帖子

11.00

积分

新手上路

Rank: 1

积分
11.00
发表于 2020-12-1 15:45:01 | 显示全部楼层
图片和源文件放一起
回复

使用道具 举报

1

主题

3

帖子

3.00

积分

新手上路

Rank: 1

积分
3.00
 楼主| 发表于 2020-12-1 16:00:01 | 显示全部楼层
我把图片放在了SRC中,跟源文件放在了一起,还是不行啊,
回复

使用道具 举报

0

主题

3

帖子

4.00

积分

新手上路

Rank: 1

积分
4.00
发表于 2020-12-1 16:15:01 | 显示全部楼层
引用绝对路径试试
import javax.microedition.midlet.*;把这句话加上如果你做的是个完整程序的话
Image slides[0] = Image.createImage("/A.gif");
这个图片和 工程文件放1个文件夹没问题的
回复

使用道具 举报

0

主题

2

帖子

3.00

积分

新手上路

Rank: 1

积分
3.00
发表于 2020-12-1 16:30:01 | 显示全部楼层
晕!你用什么模拟器啊?我没听说过什么机型支持GIF动画呢。你换成png试试看,
回复

使用道具 举报

0

主题

1

帖子

2.00

积分

新手上路

Rank: 1

积分
2.00
发表于 2020-12-1 16:45:01 | 显示全部楼层
把图片放到classes文件夹
回复

使用道具 举报

1

主题

3

帖子

3.00

积分

新手上路

Rank: 1

积分
3.00
 楼主| 发表于 2020-12-1 17:00:01 | 显示全部楼层
谢谢大家了,问题已经解决了!~WTK 2.0中有讲是能支持GIF格式的图片!但我没有考虑到实际的机型,正如conan609 所说的,换成png格式的就不会有问题了!~而且图片要放在classes文件中!~也可以用绝对路径,但那样的话,发布的时候就不好做了,!~~`以后还的请大家多多指教!~
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

Archiver|手机版|CopyRight © 2008-2023|verysource.com ( 京ICP备17048824号-1 )

快速回复 返回顶部 返回列表