ImageIcon没有在Swing中加载

时间:2016-03-08 12:36:06

标签: java eclipse swing

问题是当我运行以下swing程序时图像没有被加载。 我有一个名为" sWINGPRAC "我在其中有一个JAVA文件 IconLabelDemo.java 。我确保了Image" myIcon.gif"在同一目录中。 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();

                }
            });
        }
}

1 个答案:

答案 0 :(得分:3)

纳迪尔的评论让人头疼。您正在使用" myIcon.gif"作为文件名,这意味着它必须是执行程序的目录的本地。如果要将图标打包到库中,则需要查看使用资源加载器。看看这个问题:How to correctly get image from 'Resources' folder in NetBeans(它也应该在Eclipse中应用)。