import java.awt.BorderLayout;
import java.awt.Color;
import java.awt.Container;
import java.awt.event.WindowAdapter;
import java.awt.event.WindowEvent;import javax.swing.ImageIcon;
import javax.swing.JButton;
import javax.swing.JFrame;
public class MyLabelWithImageIcon extends JFrame  { /**
 * @param args
 */
private JButton l1;
private JButton l2;
private JButton l3;
public MyLabelWithImageIcon()
{
this.setTitle("V");
this.setSize(300,200);
this.addWindowListener(new WindowAdapter()
{
public void windowClosing(WindowEvent e){
System.exit(0);
}
}
);

Container con=this.getContentPane();
con.setLayout(new BorderLayout());
ImageIcon ima=new ImageIcon("image/2C0398007F41E47FA7A163E6A8399226.gif");

l1=new JButton("No1",ima);
l1.setToolTipText("**ToolTipText**");


l1.setBackground(Color.BLUE);
l2=new JButton("No1");
l2.setToolTipText("**ToolTipText**");
l2.setIcon(ima);

l2.setBackground(Color.BLUE);
l3=new JButton("No1");
l3.setToolTipText("**ToolTipText**");
l3.setIcon(ima);

l3.setBackground(Color.BLUE);

con.add(l1,BorderLayout.CENTER);
con.add(l2,BorderLayout.NORTH);
con.add(l3,BorderLayout.SOUTH);


}
public static void main(String[] args) {
// TODO Auto-generated method stub
MyLabelWithImageIcon oo=new MyLabelWithImageIcon();
oo.setVisible(true);
}
}
这是我的代码,那个图像文件是放在images的文件夹中,路径应该没有错,不过为什么就在按钮上没有那个图像呢??为什么?

解决方案 »

  1.   

    这是一个相对路径的问题,如果是用myeclipse做的话就得从项目名开始向下写才能找到,要看编译器是从哪个目录开始寻址了,myeclipse中用的是
    new ImageIcon("/projectname/srcname/packagename/filename");只有从项目名开始才行,不知你用的什么开发软件
      

  2.   

    myeclipse和eclipse不一样吧?
      

  3.   

    不行啊,用了"/projectname/srcname/packagename/filename"这样的路径也没有用。为什么啊?
      

  4.   

    我刚才也是  改成绝对路径就好了,另外java 貌似是 // 吧
    类似
    "E:\\java\\h\\src\\Textarea\\ha.JPG"
      

  5.   

    如果是图片放在项目下的话
    (下面是我的图片路径,也是放在项目下的images中的)
    ImageIcon ima=new ImageIcon("./images/set.gif"); 
    l1=new JButton("No1",ima); 
    l1.setToolTipText("**ToolTipText**"); 这样是有加进去的