我想在一个按钮上显示图片于是这样写...
button.setIcon(new ImageIcon("head.png"));
可是仅仅显示swing按钮原有的样子.
..我确实图片已放在class同目录下.
但是如果这样写就可以正确显示图片.
button.setIcon(new ImageIcon("E:\\head.png"));

解决方案 »

  1.   

    如果你的类带有包名,一定要将图片放到根包同目录下,例如下面的类
    package test;import java.awt.BorderLayout;
    import java.awt.Container;import javax.swing.ImageIcon;
    import javax.swing.JButton;
    import javax.swing.JFrame;public class SwingTest {
    public static void main(String[] args) {
    JFrame frame = new JFrame("test");
    Container c = frame.getContentPane();
    c.setLayout(new BorderLayout());
    JButton b = new JButton();
    b.setIcon(new ImageIcon("test.jpg"));
    c.add(b, BorderLayout.CENTER);
    frame.setSize(200, 200);
    frame.setVisible(true);
    frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
    }
    }
    如果我将这个java文件放到C盘根目录下,那么经过编译后产生的class文件要放到在C:\test目录下,而这个时候test.jpg文件不能放到c:\test目录下,而要放到c盘根目录下。
      

  2.   

    唔,我的那个类并没有包名,我是用eclipse随意弄的.
    但确实是楼上的大大所说的.X_X我的class是在xx\bin下. 原本将图片也放在bin中,......现在放在xx下.就可以使用了.....这是为什么?