问题是当我运行以下swing程序时图像没有被加载。 我有一个名为" sWINGPRAC "我在其中有一个JAVA文件 IconLabelDemo.java 。我确保了Image" myIcon.gif"在同一目录中。 的 IconLabelDemo.java
package sWINGPRAC;
import javax.swing.*;
import javax.swing.border.Border;
import java.awt.*;
public class IconLabelDemo {
public IconLabelDemo() {
JFrame jfrm = new JFrame("ImageIcon");
jfrm.getContentPane().setLayout(new GridLayout(4, 1));
jfrm.setSize(250, 300);
jfrm.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
ImageIcon img = new ImageIcon("myIcon.gif");
JLabel jlabIcon = new JLabel(img);
JLabel jlabIconTxt = new JLabel("Default iCon and text position",img , SwingConstants.CENTER);
JLabel jlabIconTxt2 = new JLabel("Text left of icon",img,SwingConstants.CENTER);
jlabIconTxt2.setHorizontalTextPosition(SwingConstants.LEFT);
JLabel jlabIconTxt3 = new JLabel("Text Over ICon",img,SwingConstants.CENTER);
jlabIconTxt3.setVerticalTextPosition(SwingConstants.TOP);
jfrm.add(jlabIcon);
jfrm.add(jlabIconTxt);
jfrm.add(jlabIconTxt2);
jfrm.add(jlabIconTxt3);
jfrm.setVisible(true);
}
public static void main(String[] args) {
SwingUtilities.invokeLater(new Runnable() {
@Override
public void run() {
new IconLabelDemo();
}
});
}
}
答案 0 :(得分:3)
纳迪尔的评论让人头疼。您正在使用" myIcon.gif"作为文件名,这意味着它必须是执行程序的目录的本地。如果要将图标打包到库中,则需要查看使用资源加载器。看看这个问题:How to correctly get image from 'Resources' folder in NetBeans(它也应该在Eclipse中应用)。