Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/388.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 图像图标未显示在JButton中_Java_User Interface_Imageicon - Fatal编程技术网

Java 图像图标未显示在JButton中

Java 图像图标未显示在JButton中,java,user-interface,imageicon,Java,User Interface,Imageicon,我试图在JButton中显示一个图标,但是当我运行应用程序时,它只显示一个空白JButton,里面没有图像。路径是正确的,我没有得到任何错误…只是一个空白按钮。我不确定我会错在哪里 JButton quickGuide = new JButton(); Icon icon1 = new ImageIcon("/Project1/images/quickGuideIcon.png"); quickGuide.setIcon(icon1); quickGuide.se

我试图在JButton中显示一个图标,但是当我运行应用程序时,它只显示一个空白JButton,里面没有图像。路径是正确的,我没有得到任何错误…只是一个空白按钮。我不确定我会错在哪里

    JButton quickGuide = new JButton();
    Icon icon1 = new ImageIcon("/Project1/images/quickGuideIcon.png");
    quickGuide.setIcon(icon1);
    quickGuide.setBounds(490, 10, 50, 50);
    quickGuide.setContentAreaFilled(false);

您在Eclipse中看到的路径是相对于项目的根目录的:

位置标记包含您需要提供的完整路径

您还可以提供JVM启动位置的相对路径,如下所示:./relative/path/to/file。注意相对路径前面的点

如果您计划在jar文件中定位图像,请使用:

新建ImageIContClass.getResourceimages/quickGuideIcon.png


上面的位置是相对于类路径的。

当您停止使用setBounds,而是使用符合按钮首选大小的布局管理器时,会发生什么情况?如果打开终端并执行命令ls-l/Project1/images/quickGuideIcon.png,您会得到什么输出?路径:/Project1/images/quickGuideIcon.png看起来可疑。你在Linux上吗?我在Mac上使用Eclipse。这是Eclipse中图像属性中显示的路径。为什么不回答这个问题?如果打开终端并执行命令ls-l/Project1/images/quickGuideIcon.png,您会得到什么样的输出?eclipse很可能会显示文件的相对路径;Java期待着绝对的。。。。只有当Project1位于根目录下时,才会相等,除非您将根目录用作eclipseI的工作区,否则很难使用JAR文件打包图像。在其他人的计算机上,位置路径将不相同。我不需要使用项目文件夹中的路径,因为图像将位于该文件夹中吗?