在 Eclipse 中,当我运行代码时,这是有效的:
import javax.swing.ImageIcon;
import javax.swing.JFrame;
import javax.swing.JMenu;
import javax.swing.JMenuBar;
import javax.swing.JMenuItem;
public class Main {
public static void main(String[] args) {
JFrame frame = new JFrame("test viewing images");
frame.setSize(600,300);
frame.setLocationRelativeTo(null); // centered on monitor
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
/**
* Menu Bar stuff
*/
JMenuBar menuBar;
JMenu menu;
JMenuItem menuItem;
// MENU BAR
menuBar = new JMenuBar();
frame.setJMenuBar(menuBar);
menuBar.setVisible(true);
// MENU 1
menu = new JMenu("File");
menuBar.add(menu);
// MENU 1 ITEM
ImageIcon icon = new ImageIcon("src/Action-exit-icon.png");
menuItem = new JMenuItem("Exit Program", icon);
menu.add(menuItem);
frame.setVisible(true);
}
}
这是我的包资源管理器中的文件结构:
ShowImage (project)
> src / Main.java
> src / Action-exit-icon.png
此外,此工作区位于 Z:\eclipse_projects
我可以看到ImageIcon icon = new ImageIcon("src/Action-exit-icon.png"); 运行良好,menuBar 可以正常工作。
现在让我们导出这个项目,我会将 JAR 通过电子邮件发送给我的朋友。
- 右键单击项目 > 选择导出
- 选择 Java > 可运行的 JAR 文件
- 我在启动配置中选择主文件
- 导出目的地:我的桌面
- 库处理:将所需库提取到生成的 JAR 中
- 转到我的桌面,双击 ShowImage.jar
JFrame 出现了,但Action-exit-icon.png根本没有出现。
当我打开 ShowImage.jar 来查看它的内容时,我看到了 Main.class、Action-exit-icon.png、META-INF。
好的,我现在对如何引用图像或任何资源感到非常困惑。我究竟做错了什么?