java为什么我的eclipse运行图片图标就显示错误呢?怎么调整啊,我把图片和class文件放在一个包里也不行。

/**
*
*/
private static final long serialVersionUID = 1L;
public JButtonTest() {
URL url = JButtonTest.class.getResource("imageButtoo.jpg");
Icon icon = new ImageIcon(url);
setLayout(new GridLayout(3, 2, 5, 5)); // 设置网格布局管理器
Container c = getContentPane(); // 创建容器
for (int i = 0; i < 5; i++) {
// 创建按钮,同时设置按钮文字与图标
JButton J = new JButton("button" + i, icon);
c.add(J); // 在容器中添加按钮
if (i % 2 == 0) {
J.setEnabled(false); // 设置其中一些按钮不可用
}
}
JButton jb = new JButton(); // 实例化一个没有文字与图片的按钮
jb.setMaximumSize(new Dimension(90, 30)); // 设置按钮与图片相同大小
jb.setIcon(icon); // 为按钮设置图标
jb.setHideActionText(true);
jb.setToolTipText("图片按钮"); // 设置按钮提示为文字
jb.setBorderPainted(false); // 设置按钮边界不显示
jb.addActionListener(new ActionListener() { // 为按钮添加监听事件
public void actionPerformed(ActionEvent e) {
// 弹出确认对话框
JOptionPane.showMessageDialog(null, "弹出对话框");
}
});
c.add(jb); // 将按钮添加到容器中

setTitle("创建带文字与图片的按钮");
setSize(350, 150);
setVisible(true);
setDefaultCloseOperation(WindowConstants.DISPOSE_ON_CLOSE);
}

public static void main(String args[]) {
new JButtonTest();
}
}
Exception in thread "main" java.lang.NullPointerException
at javax.swing.ImageIcon.<init>(ImageIcon.java:217)
at com.lzw.JButtonTest.<init>(JButtonTest.java:17)
at com.lzw.JButtonTest.main(JButtonTest.java:49)
谢谢大神!!!

第1个回答  2014-12-30
做GUI程序的时候,要注意URL.
第2个回答  2014-12-29
是和源文件java放在一起,不是classes里面的class追问

我的图片位置是D://java//java工具//eclipse//workspace//Swing程序设计//src//com//lzw//imageButtoo.jpg 请问怎么是不是修改上面代码URL的地址啊,怎么修改?给我讲讲把?

追答

那你换个图片看看,说不定这个图片损坏了

第3个回答  2014-12-28
你是放在src下吗追问

追答

图片前面加个斜杠试下,不行就换成用其他的类来把图片显示出来

追问

...斜杠也没用

追答

帮你测试了,图片放在工程下,就是和src是同级目录,然后图片前加"/"
比如:
工程webTest
——src
——icon
——img.jpg
getClass().getResource("/icon/img.jpg")

本回答被提问者采纳
相似回答