Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/345.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

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/.net/25.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-ImageIcon赢得';不显示图像_Java - Fatal编程技术网

Java-ImageIcon赢得';不显示图像

Java-ImageIcon赢得';不显示图像,java,Java,我正在尝试加载图标,但它不会显示。jpanel位于boxlayout中。我不知道这是否会把事情搞砸。这很奇怪,因为除了图标图像,我几乎可以添加任何其他内容。我检查了调试器,searchIcon显示宽度和高度为-1。这是否意味着未加载图像 我检查了调试器,然后 searchIcon正在显示宽度和宽度 高度为-1。这是否意味着 未加载图像 对 阅读JLabel API,您将找到一个指向Swing教程“如何使用标签”的链接,该教程有一个工作示例 您还可以找到“如何使用图标”一节,其中显示了正确指定图标

我正在尝试加载图标,但它不会显示。jpanel位于boxlayout中。我不知道这是否会把事情搞砸。这很奇怪,因为除了图标图像,我几乎可以添加任何其他内容。我检查了调试器,searchIcon显示宽度和高度为-1。这是否意味着未加载图像

我检查了调试器,然后 searchIcon正在显示宽度和宽度 高度为-1。这是否意味着 未加载图像

阅读JLabel API,您将找到一个指向Swing教程“如何使用标签”的链接,该教程有一个工作示例


您还可以找到“如何使用图标”一节,其中显示了正确指定图标位置的所有不同方法。

您的图像文件需要位于运行应用程序的同一目录中

如果它实际上与进行调用的类位于同一目录中,则可以使用:

searchIcon = new ImageIcon( "searchIcon.png" );

searchIconLabel = new JLabel();
searchIconLabel.setIcon(searchIcon);

....

searchHorizontalPanel.add( searchIconLabel );

如果它位于任意位置,则需要指定完整路径。

谢谢。我添加了完整的路径,它可以工作。但这很奇怪……在我以前编写的Java程序中,我只是将文件放在项目文件夹中(使用NetBeans),并且加载得很好。然而,这带来了一个问题。如果它不是在同一台计算机上运行呢?道路将不同。如何添加一个能在所有计算机上运行的路径?-1如果它实际上与发出调用的类位于同一目录中,那么与问题一起发布的代码将起作用。这就是为什么更好的答案是实际阅读教程,这样你就能理解发生了什么,而不要因为有人发布了一行代码就选择捷径答案,因为你仍然不明白它为什么有效。自己做一些基本的阅读。那是不正确的,发布的代码在运行它的目录中,而不是与class@Plissken,最好将图像打包为类中的资源。这样就避免了必须指定完整路径的问题。Swing教程将介绍您的大部分问题。为什么在发布问题之前你不能先阅读教程?我刚刚给了你一个教程的链接,但是你还没有阅读它并继续问后续问题,因为你不理解最初的一行解决方案。camickr,在谈到堆栈溢出之前,我总是浏览javadocs和swing教程。我以前见过swing tut,它对我没有帮助,主要是因为它的第一个方法对我不起作用,第二个我不想使用getResource方法。所以,请停止假设。谢谢祝你度过愉快的一天。我建议你阅读常见问题解答
searchIcon = new ImageIcon( getClass().getResource("searchIcon.png") );