Java 我无法显示我的图像图标
这是我的密码Java 我无法显示我的图像图标,java,image,swing,embedded-resource,imageicon,Java,Image,Swing,Embedded Resource,Imageicon,这是我的密码 import javax.swing.*; public class Option extends JFrame{ ImageIcon img = new ImageIcon("image.png"); ImageIcon img2 = new ImageIcon("image2.png"); JButton testBut = new JButton(img); JButton testBut2 = new JButton(img2); JPanel pnl = new JP
import javax.swing.*;
public class Option extends JFrame{
ImageIcon img = new ImageIcon("image.png");
ImageIcon img2 = new ImageIcon("image2.png");
JButton testBut = new JButton(img);
JButton testBut2 = new JButton(img2);
JPanel pnl = new JPanel();
public Option(){
super("Swing Window");
setSize( 500,200 );
setDefaultCloseOperation(EXIT_ON_CLOSE);
pnl.add(testBut);
pnl.add(testBut2);
add(pnl);
setVisible(true);
}
public static void main(String[] args){
Option gui = new Option();
}
}
我已经在同一个目录中的类文件和按钮显示为空白的两个图像。我对Java非常陌生,所以我想不出这是错误的原因
编辑
这些图像与选项类位于同一目录中
“图像与选项类位于同一目录中”
ImageIcon(String)
试图在工作目录的上下文中(从程序执行的地方)查找命名的图像,但它将失败,因为图像实际上不存在
图像包含在应用程序上下文中(当应用程序被jared时,图像将被嵌入Jar中)
相反,你应该尝试使用
img = new ImageIcon(getClass().getResource("image.png"));
从类的构造函数中。这将尝试在应用程序的类路径上下文中查找与调用getResource
的类的包相关的图像
我还鼓励使用ImageIO.read
ofImageIcon
有两个原因,一是调用方法时保证加载图像(而不是在某个后台线程中加载),二是如果由于某种原因无法加载图像,它将抛出IOException
,哪个更有帮助
请查看以了解更多详细信息
“图像与选项类位于同一目录中”
ImageIcon(String)
试图在工作目录的上下文中(从程序执行的地方)查找命名的图像,但它将失败,因为图像实际上不存在
图像包含在应用程序上下文中(当应用程序被jared时,图像将被嵌入Jar中)
相反,你应该尝试使用
img = new ImageIcon(getClass().getResource("image.png"));
从类的构造函数中。这将尝试在应用程序的类路径上下文中查找与调用getResource
的类的包相关的图像
我还鼓励使用ImageIO.read
ofImageIcon
有两个原因,一是调用方法时保证加载图像(而不是在某个后台线程中加载),二是如果由于某种原因无法加载图像,它将抛出IOException
,哪个更有帮助
请查看以了解更多详细信息
“图像与选项类位于同一目录中”
ImageIcon(String)
试图在工作目录的上下文中(从程序执行的地方)查找命名的图像,但它将失败,因为图像实际上不存在
图像包含在应用程序上下文中(当应用程序被jared时,图像将被嵌入Jar中)
相反,你应该尝试使用
img = new ImageIcon(getClass().getResource("image.png"));
从类的构造函数中。这将尝试在应用程序的类路径上下文中查找与调用getResource
的类的包相关的图像
我还鼓励使用ImageIO.read
ofImageIcon
有两个原因,一是调用方法时保证加载图像(而不是在某个后台线程中加载),二是如果由于某种原因无法加载图像,它将抛出IOException
,哪个更有帮助
请查看以了解更多详细信息
“图像与选项类位于同一目录中”
ImageIcon(String)
试图在工作目录的上下文中(从程序执行的地方)查找命名的图像,但它将失败,因为图像实际上不存在
图像包含在应用程序上下文中(当应用程序被jared时,图像将被嵌入Jar中)
相反,你应该尝试使用
img = new ImageIcon(getClass().getResource("image.png"));
从类的构造函数中。这将尝试在应用程序的类路径上下文中查找与调用getResource
的类的包相关的图像
我还鼓励使用ImageIO.read
ofImageIcon
有两个原因,一是调用方法时保证加载图像(而不是在某个后台线程中加载),二是如果由于某种原因无法加载图像,它将抛出IOException
,哪个更有帮助
查看更多详细信息您也可以添加类似的代码:
setIconImage(新图像图标(新文件(“icona.png”).toString()).getImage())代码>
您也可以添加类似的代码:
setIconImage(新图像图标(新文件(“icona.png”).toString()).getImage())代码>
您也可以添加类似的代码:
setIconImage(新图像图标(新文件(“icona.png”).toString()).getImage())代码>
您也可以添加类似的代码:
setIconImage(新图像图标(新文件(“icona.png”).toString()).getImage())代码>
相对于选项
类,图像存储在哪里?您可能想看看这些映像是否在同一个目录中,因为选项classApplication resources将在部署时成为嵌入式资源,因此现在就开始像访问它们一样访问它们是明智的。必须通过URL而不是文件访问。有关如何形成URL的信息,请参阅。谢谢您的帮助,但我已成功修复了它。我使用了一个像你说的URL,起初不起作用,但我所要做的只是刷新项目,让png文件显示出来。谢谢大家!相对于选项
类,图像存储在哪里?您可能想看一看,这些图像与classapplicationresources选项b位于同一目录中