Eclipse相对文件路径到图像文件

时间:2013-10-15 23:24:31

标签: java eclipse relative-path

我对eclipse上的相对文件路径有一个恼人的问题。我已经看过很多关于如何解决这个问题的帖子,但对我来说没什么用。

我的目录结构如下:

enter image description here

在C.java里面我想指出NotSet_16x16.png的相对路径

 ip_address_image_label.setIcon (new ImageIcon ("<relativePath>\\NotSet_16x16.png"));

4 个答案:

答案 0 :(得分:3)

不要使用代码保留资源。创建一个单独的“资源”文件夹(文件夹以及您已有的src),其中包含一个图像文件夹,并将那些PNG保留在那里。对其余资源执行相同操作(我看到您有csv和txt文件)。

完成后,你会发现你不应该考虑到你需要它们的类的位置来访问你的资源,但只考虑到它们是资源而且它们都在同一个地方,即使用/images/NotSet_16x16.png等绝对路径获取它们。 所以在你的班上你可以做类似的事情:

new ImageIcon(this.getClass().getResource("/images/NotSet_16x16.png"))

答案 1 :(得分:1)

通常,代码中的文件用作资源。编译后,他们最终得到了类文件,最后是.jar文件。

请阅读Cdata into a byte[]中的as a resource并使用ImageIcon(byte[])构造函数创建图片。


或者,您可以使用intermediate imageusing an URL to a resource读取{{3}}来创建图标。这可能更加整洁,因为您无需在将InputStream读入byte[]缓冲区时烦恼。


请注意,如果您使用这些方法中的任何一种,则可以直接使用文件的名称(因为类文件和图像位于同一个包中)。您无需指定路径。

答案 2 :(得分:1)

试试这个:

String filePath = ".\\images\\NotSet_16x16.png";

其中«。\ _»是Eclipse项目的根目录,«images»是一个包含Eclipse项目内用户文件的文件夹。由于我们讨论的是Windows操作系统,我们必须使用«\»而不是«/»,就像在Linux中一样,但«\ _»是保留的符号,所以我们必须输入«\»来获得所需的结果。

答案 3 :(得分:0)

我为我的问题尝试了所有这些答案,但没有一个能够奏效。我问了一位朋友,他完美地回答了我的问题。创建一个名为Images的源文件夹(即如果您正在使用eclipse,请右键单击您的项目 - &gt; new - &gt; sourceFolder)。无论你想要什么,我都称它为我的图像。把一些图像放进去。

现在我有JLabels,我给了他们ImageIcons。请查看以下代码。

    ImageIcon BPawn;
    ImageIcon WPawn;
    JLabel Label = new JLabel[8][8] //2D array of labels that gives each spot a position.
    public void setPieces(){
        //set up pawns in their respective positions.
        BPawn = new ImageIcon("Images/BPawn.png", "BPawn");
        WPawn = new ImageIcon("Images/WPawn.png", "WPawn");
    for(int i=0;i<Label[0].length;i++){
        Label[1][i].setIcon(BPawn);
        Label[6][i].setIcon(WPawn);
    }//end for

    }//end setPieces.

setPieces()方法还有很多内容,但是这一瞥是在创建可执行jar并想要显示图像时如何引用源文件夹中的图像。