我们需要在设计时想清楚,我们是使用基于代码的路径还是基于磁盘上 ini 设置文件中定制的路径,比如,如果我们不打算让用户定制图标,我们就可以在 jar 中自带,这样就写成:
new ImageIcon(getClass().getResource("/images/logo.jpg"));
如果我们打算让用户可以切换主题方案,而每个主题方案可能是在要地磁盘上的 theme 目录下的某个目录下,我们可以换成:
new ImageIcon("theme/themeA/images/logo.jpg");
要注意这个直接用相对目录时,它所对应的根目录是哪个就要仔细观察了,一般来说就是 Windows 启动时程序所在的目录,但我们可以通过快捷方式中的参数来改变它,如果我们是用命令行启动的,也可能当前目录不是期望的。
尝试下设置JLabel背景透明方法setOpaque(false)
new ImageIcon(Pic.class.getResource("1.jpg"))...
把你这个 图片传上来看看。