JAVA运行时出现 Exception in thread "main" java.lang.NullPointerException

importjava.awt.BorderLayout;importjava.awt.CardLayout;importjava.awt.event.ActionEven... import java.awt.BorderLayout;
import java.awt.CardLayout;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.net.URL;
import javax.swing.Icon;
import javax.swing.ImageIcon;
import javax.swing.JFrame;
import javax.swing.JButton;
import javax.swing.JLabel;
import javax.swing.JPanel;
import javax.swing.JTextField;
import javax.swing.WindowConstants;

public class UserCardLayoutFrame extends JFrame{
private JTextField txtld;
private URL url = null;
private Icon icon = null;
private JPanel imgPanel;
private CardLayout cardlayout;
public UserCardLayoutFrame(){
setTitle("使用卡片布局浏览照片");
setBounds(100,100,365,252);
setDefaultCloseOperation(WindowConstants.EXIT_ON_CLOSE );
final JPanel northPanel = new JPanel();
getContentPane().add(northPanel,BorderLayout.NORTH );
final JLabel label = new JLabel();
label.setText("请输入照片编号:");
northPanel.add(label);
txtld = new JTextField();
northPanel.add(txtld);
imgPanel = new JPanel();
cardlayout = new CardLayout();
imgPanel.setLayout(cardlayout);
getContentPane().add(imgPanel,BorderLayout.CENTER );
for(int i=1;i<=6;i++){
url = UserCardLayoutFrame.class.getResource("/image/"+i+".jif");
icon = new ImageIcon(url);
imgPanel.add(String.valueOf(i),new JLabel(icon));
}
final JButton button = new JButton();
button.addActionListener(new ActionListener(){
public void actionPerformed(final ActionEvent arg0){
String id = txtld.getText();
cardlayout.show(imgPanel, id);
}
});
button.setText("显示照片");
northPanel.add(button);
final JPanel southPanel = new JPanel();
getContentPane().add(southPanel, BorderLayout.SOUTH );
final JButton dButton = new JButton();
dButton.addActionListener(new ActionListener(){
public void actionPerformed(final ActionEvent arg0){
cardlayout.first(imgPanel);
}
});
dButton.setText("第一张");
southPanel.add(dButton);
final JButton gButton = new JButton();
gButton.addActionListener(new ActionListener(){
public void actionPerformed(final ActionEvent arg0){
cardlayout.next(imgPanel);
}
});
gButton.setText("下一张");
southPanel.add(gButton);
final JButton button_1 = new JButton();
button_1.addActionListener(new ActionListener(){
public void actionPerformed(final ActionEvent arg0){
cardlayout.last(imgPanel);
}
});
button_1.setText("最后一张");
southPanel.add(button_1);
}

public static void main(String[] args) {
UserCardLayoutFrame frame = new UserCardLayoutFrame();
frame.setVisible(true);
}

}
问题:
Exception in thread "main" java.lang.NullPointerException
at javax.swing.ImageIcon.<init>(ImageIcon.java:167)
at UserCardLayoutFrame.<init>(UserCardLayoutFrame.java:39)
at UserCardLayoutFrame.main(UserCardLayoutFrame.java:90)
我建了一个LayoutProject项目,然后就在里面的src文件夹里新建一个image文件夹,把图片放到里面。
展开
 我来答
youngao21
2011-03-21 · TA获得超过243个赞
知道小有建树答主
回答量:83
采纳率:0%
帮助的人:107万
展开全部
获取图片的url地址写错了。程序我跑出来了,一张一张查看6张图片的小程序。
请注意看以下的两个地址不同处。图片的扩展名错了。 有.jif的图片??图片路径,当然要正确。你说的图片位置是对的。
url = UserCardLayoutFrame.class.getResource("/image/"+i+".jif");//源程序错误的
url = UserCardLayoutFrame.class.getResource("/image/"+i+".gif");//修改成这个
追问
我还是运行不了。
我把“.jif”改成“.gif”后,还是出现和原来一样的错误提示。我把鼠标放在("/image/"+i+".jif")上面时显示“Note:The Javadoc for this element could neither be found in the attached source nor the attached Javadoc”。
追答
那个只是提示信息,找不到相关说明注解而已。不是错误信息。要不我远程帮你看下?这样小程序应该是没问题的
chenyu398
2011-03-20 · TA获得超过532个赞
知道小有建树答主
回答量:168
采纳率:0%
帮助的人:163万
展开全部
Exception in thread "main"
有个地方出现了异常,你一直把他抛到MAIN 函数了
java.lang.NullPointerException
空指针
at javax.swing.ImageIcon.<init>(ImageIcon.java:167)
应该错误在167行,很有可能是你的图片出了问题
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
javality
2011-03-20 · TA获得超过145个赞
知道答主
回答量:96
采纳率:0%
帮助的人:92.5万
展开全部
空指针异常是经常发生的;
这句icon = new ImageIcon(url); 的时候就发生了空指针异常了,因为你上面刚定义了url和icon,而且都是null。当然要发生空指针异常了。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
oyangchonglou
2011-03-22
知道答主
回答量:27
采纳率:0%
帮助的人:11.1万
展开全部
楼上说法都正确!
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
百度网友d6cb2e6
2011-03-21 · TA获得超过341个赞
知道小有建树答主
回答量:239
采纳率:0%
帮助的人:88.8万
展开全部
你这个类使用的有问题ImageIcon
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(3)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式