首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >java swing图像路径

java swing图像路径
EN

Stack Overflow用户
提问于 2015-11-28 23:47:24
回答 1查看 96关注 0票数 0

类是从游戏项目中提取的。一切正常工作,我可以玩游戏,开始一个新的游戏,等等。只有.gif图片不显示。在我的项目中,我必须存储.gif图片,这样图像路径才能工作?我希望密码是可以理解的。

代码语言:javascript
运行
复制
class Field extends JPanel {
//fields in x direction
static final int max_x = 10;
//fields in y direction
static final int max_y = 10;
//array for field
JLabel[][] label = new JLabel [max_x][max_y];
//home-directory
String img_source = MainWindow.getDirectory();
//separator
String separator = MainWindow.getSeparator();
//stringarray for different viewing direction
String [] viewing_direction = {"player.gif", "player1.gif", "player2.gif", "player3.gif", "player4.gif", null, "player6.gif", "player7.gif", "player8.gif", "player9.gif", "loss.gif", "win.gif"};
//integer for last viewing direction
int viewing_direction_Player = 0;


Field() {
    super();
    this.setLayout(new GridLayout(max_x, max_y));
    //set theme "game"
    img_source = img_source + "image" + separator + "Game";
    addJLabels();
}

//creates field with alternating background
private void addJLabels() {
    for (int i = 0; i < max_y; i++) {
        for (int k = 0; k < max_x; k++) {
            label[i][k] = new JLabel();
            if((i+k) % 2 == 0) {    //modulo operation for alternating background
                label[i][k].setBackground(Color.BLACK);
            }
            else {
                label[i][k].setBackground(Color.WHITE);
            }
            label[i][k].setPreferredSize(new Dimension(50, 50));
            label[i][k].setOpaque(true);
            this.add(label[i][k]);
        }
    }
}



//method to get last viewing direction
public void setLastDirection(int lastDirection) {
    viewing_direction_Player = lastDirection;
}


//method that draws all pawns
public void drawAllPawns(AbstractPawn[] pawns) {
    for(int i = 0; i < (int) pawns.length; i++) {
        if ((pawns[i].getX() < 0) || (pawns[i].getY() < 0)) {

        } else if (pawns[i] instanceof Player) {
            label[pawns[i].getY()][pawns[i].getX()].setIcon(new ImageIcon(img_source + separator + viewing_direction[viewing_direction_Player]));
        } else if(pawns[i] instanceof Opponent) {
            label[pawns[i].getY()][pawns[i].getX()].setIcon(new ImageIcon(img_source + separator + "opponent.gif"));
        } else if(pawns[i] instanceof Vortex) {
            label[pawns[i].getY()][pawns[i].getX()].setIcon(new ImageIcon(img_source + separator + "vortex.gif"));
        } else if(pawns[i] instanceof Obstacle) {
            label[pawns[i].getY()][pawns[i].getX()].setIcon(new ImageIcon(img_source + separator + "obstacle.gif"));
        } else if(pawns[i] instanceof Destruction) {
            label[pawns[i].getY()][pawns[i].getX()].setIcon(new ImageIcon(img_source + separator + "destruction.gif"));
        } else if(pawns[i] instanceof Ammo) {
            label[pawns[i].getY()][pawns[i].getX()].setIcon(new ImageIcon(img_source + separator + "ammo.gif"));
        }
    }
}

下面是我的主窗口类中的getDirectory

代码语言:javascript
运行
复制
public static String getDirectory() {
    String home = System.getProperty("user.dir");
    return (home + getSeparator());
}
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2015-11-29 19:16:13

使用图像的简单方法

第一次在src文件夹中拖放图像

而不是键入此代码

代码语言:javascript
运行
复制
ImageIcon ic = new ImageIcon(getResource().getClass("Example.jpg")); // image name instead of Example.jpg
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/33977788

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档