问题描述
为何下面这个程序在ecplise。exe中运行不了。版本是jdk-7u67。控制台上显示的是:Exceptioninthread"main"java.lang.NullPointerExceptionatjavax.swing.ImageIcon.<init>(ImageIcon.java:205)atcom.lzw.JButtonTest.<init>(JButtonTest.java:17)atcom.lzw.JButtonTest.main(JButtonTest.java:49)程序是:packagecom.lzw;importjava.awt.*;importjava.awt.event.*;importjava.net.*;importjavax.swing.*;publicclassJButtonTestextendsJFrame{/****/privatestaticfinallongserialVersionUID=1L;publicJButtonTest(){URLurl=JButtonTest.class.getResource("imageButtoo.jpg");Iconicon=newImageIcon(url);setLayout(newGridLayout(3,2,5,5));//设置网格布局管理器Containerc=getContentPane();//创建容器for(inti=0;i<5;i++){//创建按钮,同时设置按钮文字与图标JButtonJ=newJButton("button"+i,icon);c.add(J);//在容器中添加按钮if(i%2==0){J.setEnabled(false);//设置其中一些按钮不可用}}JButtonjb=newJButton();//实例化一个没有文字与图片的按钮jb.setMaximumSize(newDimension(90,30));//设置按钮与图片相同大小jb.setIcon(icon);//为按钮设置图标jb.setHideActionText(true);jb.setToolTipText("图片按钮");//设置按钮提示为文字jb.setBorderPainted(false);//设置按钮边界不显示jb.addActionListener(newActionListener(){//为按钮添加监听事件publicvoidactionPerformed(ActionEvente){//弹出确认对话框JOptionPane.showMessageDialog(null,"弹出对话框");}});c.add(jb);//将按钮添加到容器中setTitle("创建带文字与图片的按钮");setSize(350,150);setVisible(true);setDefaultCloseOperation(WindowConstants.DISPOSE_ON_CLOSE);}publicstaticvoidmain(Stringargs[]){newJButtonTest();}}
解决方案
解决方案二:
URLurl=JButtonTest.class.getResource("imageButtoo.jpg");Iconicon=newImageIcon(url);估计你的URL为null,没找到那个图片,试试下面这种写法URLurl=JButtonTest.class.getClassLoader().getResource("imageButtoo.jpg");
解决方案三:
还是不行,我这个程序你运行过不?我想知道是程序出问题还是eclipse出问题
解决方案四:
URLurl=JButtonTest.class.getResource("imageButtoo.jpg");Iconicon=newImageIcon(url);估计你的URL为null,没找到那个图片,试试下面这种写法URLurl=JButtonTest.class.getClassLoader().getResource("imageButtoo.jpg");这样可以运行啊,你确定你项目底下有imageButtoo.jpg这张图片?
解决方案五:
要在eclipse中运行,程序就是导入的,相应的图片路径肯定要改变,否则就找不到路径,编辑出错;
解决方案六:
debug调试阿
解决方案七:
我感觉写任何程序前,必须学debug。俗话说的好,daydaydebug,daydayup