lec*_*rdo 4 java swing image jlabel imageicon
尝试显示我的徽标时遇到问题。图片保存在与main.java同一个文件夹中
ImageIcon im = new ImageIcon("banner.png");
JLabel bam = new JLabel(im);
grid.add(bam);
Run Code Online (Sandbox Code Playgroud)
我的语法有问题吗?
可能的问题有很多,但最可能的问题是,图像的位置与执行应用程序的位置不在同一上下文中。
比方说,main.java位于某个目录中(为了论证起见,我们只说“path/to/class”),那么当你执行 you 时main.java,图像的路径将变成类似 的东西/path/to/class,这意味着你应该使用 using 之类的东西...
ImageIcon im = new ImageIcon("path/to/class/banner.png");
Run Code Online (Sandbox Code Playgroud)
这还假设图像尚未被 Jar'ed,正如ImageIcon(String)文件系统上文件的路径所期望的那样。
如果程序已被 Jar'ed 那么您将无法使用ImageIcon(String),因为它banner.png不再是文件,而是资源,那么您将需要使用类似...
ImageIcon im = new ImageIcon(getClass().getResource("/path/to/class/banner.png"));
Run Code Online (Sandbox Code Playgroud)
/path/to/class包住在哪里main.java。
无论哪种情况,我都建议您使用它,因为当出现问题时,ImageIO.read这实际上会抛出一个错误,而这往往会默默地失败......IOExceptionImageIcon
查看读取/加载图像以获取更多详细信息
| 归档时间: |
|
| 查看次数: |
14939 次 |
| 最近记录: |