用java在窗体上显示图标

用java在窗体上显示图标,java,forms,icons,Java,Forms,Icons,我正在尝试编写一个java程序,我可以用自己的gif文件设置窗体的图标。 问题是,当我从IDE运行程序时,它运行正常,但当我尝试从dist文件夹中单击jar文件运行它时,我的图标消失,默认的java cup图标显示。 我怎样才能解决这个问题 我正在做这样的事情: IDE ide=new IDE(); ide.setIconImage(Toolkit.getDefaultToolkit().getImage("edited.gif")); ide.setVisible(true)

我正在尝试编写一个java程序,我可以用自己的gif文件设置窗体的图标。 问题是,当我从IDE运行程序时,它运行正常,但当我尝试从dist文件夹中单击jar文件运行它时,我的图标消失,默认的java cup图标显示。 我怎样才能解决这个问题

我正在做这样的事情:

   IDE ide=new IDE();
   ide.setIconImage(Toolkit.getDefaultToolkit().getImage("edited.gif"));
   ide.setVisible(true);

我的gif文件在项目文件夹中。假设我的项目名是X。因此我将gif文件放在X文件夹中。

因此,您还必须将图像复制到jar旁边的dist文件夹中。它会很好的工作

为了节省时间,请记住在NetBeans中执行此操作,我编辑build.xml文件,IDE会自动为我执行此操作。只需将下面的代码放在
标记上即可。我建议将所有的图片都放在我的can is images文件夹的某个文件夹中

<!-- copy data & images folders' contents to dist folder on build. -->
    <target name="-post-jar" description="Copying Images">
        <property name="images.dir" value="${dist.dir}/images" />
        <property name="data.dir" value="${dist.dir}/data" />

        <copy todir="${images.dir}">
            <fileset dir="./images" />
        </copy>
        <echo level="info" message="Images folder content was copied."/>

        <copy todir="${data.dir}">
            <fileset dir="./data" />
        </copy>
        <echo level="info" message="Data folder content was copied."/>
    </target>


确认图像文件已被正确拾取,即它位于类路径等中。谢谢,伙计。但是如果你解释得更清楚一点,我应该在哪里修改代码呢。我应该把我的项目文件夹、图像和dist文件夹名放在哪里?嘿,我成功地做到了。非常感谢你。因为我是java的新手,所以要花更多的时间去实践。@Anas不用担心。我离开键盘有一段时间了。很好,你自己想出来了。