java下面代码为什么会 提示空指针异常(记事本代码)

importjava.awt.BorderLayout;importjavax.swing.ImageIcon;importjavax.swing.JButton;imp... import java.awt.BorderLayout;

import javax.swing.ImageIcon;
import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JMenu;
import javax.swing.JMenuBar;
import javax.swing.JMenuItem;
import javax.swing.JScrollPane;
import javax.swing.JTextArea;
import javax.swing.JToolBar;

public class JiShiBen extends JFrame{
JMenuBar cd;
JMenu cd1,cd2,cd3,cd4,cd5;
JMenuItem cdx2,cdx3,cdx4,cdx5,cdx6,cdx7;
JMenu ej; JMenuItem ej1,ej2;
//JMenu是最终的,不可以再有下一集菜单,而是直接出现应用效果
//JMenu不是最终的,点击后不是应用效果,而是下一级菜单。

JToolBar gjt;
JButton an1,an2,an3,an4,an5,an6;

JTextArea wby;
JScrollPane gdt;

public static void main(String[] args){
new JiShiBen();
}

JiShiBen(){
gjt = new JToolBar();
//an1 = new JButton(new ImageIcon(""));
an1.setToolTipText("新建"); //!!!!!!提示异常处!!!!!!
//an2 = new JButton(new ImageIcon(""));
an2.setToolTipText("打开");
//an3 = new JButton(new ImageIcon(""));
an3.setToolTipText("保存");
an4.setToolTipText("剪切");
an5.setToolTipText("复制");
an6.setToolTipText("粘贴");//工具标签

cd = new JMenuBar();
cd1 = new JMenu("文件(F)");
cd1.setMnemonic('F');//快捷键
cd2 = new JMenu("编辑(E)");
cd2.setMnemonic('E');
cd3 = new JMenu("格式(O)");
cd3.setMnemonic('O');
cd4 = new JMenu("查看(V)");
cd4.setMnemonic('V');
cd5 = new JMenu("帮助(H)");
cd5.setMnemonic('H');

ej = new JMenu("新建");
ej1 = new JMenuItem("文件");
ej2 = new JMenuItem("模板");

cdx2 = new JMenuItem("打开");
cdx3 = new JMenuItem("保存(s)");
cdx3.setMnemonic('s');
cdx4 = new JMenuItem("另存为");
cdx5 = new JMenuItem("页面设置");
cdx6 = new JMenuItem("打印");
cdx7 = new JMenuItem("退出");

wby = new JTextArea();
gdt = new JScrollPane(wby);

gjt.add(an1); gjt.add(an2); gjt.add(an3);
gjt.add(an4); gjt.add(an5); gjt.add(an6);

ej.add(ej1); ej.add(ej2);

cd1.add(ej); cd1.add(cdx2); cd1.add(cdx3); cd1.add(cdx4);
cd1.addSeparator();//加入横线
cd1.add(cdx5); cd1.add(cdx6);
cd1.addSeparator();
cd1.add(cdx7);

this.setJMenuBar(cd);
this.add(gjt,BorderLayout.NORTH);
this.add(gdt);

//ImageIcon tp1 = new ImageIcon("");
//this.setIconImage(tp1.getImage());
this.setTitle("记事本");
this.setSize(570,370);
this.setLocation(300,280);
this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
this.setVisible(true);
}
}
展开
 我来答
百度网友f0240c618
2014-08-05 · TA获得超过220个赞
知道小有建树答主
回答量:159
采纳率:100%
帮助的人:72.4万
展开全部
package test;
import java.awt.BorderLayout;

import javax.swing.ImageIcon;
import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JMenu;
import javax.swing.JMenuBar;
import javax.swing.JMenuItem;
import javax.swing.JScrollPane;
import javax.swing.JTextArea;
import javax.swing.JToolBar;

public class JiShiBen extends JFrame{
/**
 * 
 */
private static final long serialVersionUID = 1L;
JMenuBar cd;
JMenu cd1,cd2,cd3,cd4,cd5;
JMenuItem cdx2,cdx3,cdx4,cdx5,cdx6,cdx7;
JMenu ej; JMenuItem ej1,ej2;
//JMenu是最终的,不可以再有下一集菜单,而是直接出现应用效果
//JMenu不是最终的,点击后不是应用效果,而是下一级菜单。

JToolBar gjt;
JButton an1,an2,an3,an4,an5,an6;

JTextArea wby;
JScrollPane gdt;

public static void main(String[] args){
new JiShiBen();
}

JiShiBen(){
gjt = new JToolBar();
an1 = new JButton();
an2 = new JButton();
an3 = new JButton();
an4 = new JButton();
an5 = new JButton();
an6 = new JButton();
an1.setToolTipText("新建");       //!!!!!!提示异常处!!!!!!
//an2 = new JButton(new ImageIcon(""));
an2.setToolTipText("打开");
//an3 = new JButton(new ImageIcon(""));
an3.setToolTipText("保存");
an4.setToolTipText("剪切");
an5.setToolTipText("复制");
an6.setToolTipText("粘贴");//工具标签

cd = new JMenuBar();
cd1 = new JMenu("文件(F)");
cd1.setMnemonic('F');//快捷键
cd2 = new JMenu("编辑(E)");
cd2.setMnemonic('E');
cd3 = new JMenu("格式(O)");
cd3.setMnemonic('O');
cd4 = new JMenu("查看(V)");
cd4.setMnemonic('V');
cd5 = new JMenu("帮助(H)");
cd5.setMnemonic('H');

ej = new JMenu("新建");
ej1 = new JMenuItem("文件");
ej2 = new JMenuItem("模板");

cdx2 = new JMenuItem("打开");
cdx3 = new JMenuItem("保存(s)");
cdx3.setMnemonic('s');
cdx4 = new JMenuItem("另存为");
cdx5 = new JMenuItem("页面设置");
cdx6 = new JMenuItem("打印");
cdx7 = new JMenuItem("退出");

wby = new JTextArea();
gdt = new JScrollPane(wby);

gjt.add(an1); gjt.add(an2); gjt.add(an3);
gjt.add(an4); gjt.add(an5); gjt.add(an6);

ej.add(ej1); ej.add(ej2);

cd1.add(ej); cd1.add(cdx2); cd1.add(cdx3); cd1.add(cdx4);
cd1.addSeparator();//加入横线
cd1.add(cdx5); cd1.add(cdx6);
cd1.addSeparator();
cd1.add(cdx7);

this.setJMenuBar(cd);
this.add(gjt,BorderLayout.NORTH);
this.add(gdt);

//ImageIcon tp1 = new ImageIcon("");
//this.setIconImage(tp1.getImage());
this.setTitle("记事本");
this.setSize(570,370);
this.setLocation(300,280);
this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
this.setVisible(true);
}
}

得把button new出来啊~~

已赞过 已踩过<
你对这个回答的评价是?
评论 收起
靖挚人生
2014-08-05 · 超过20用户采纳过TA的回答
知道答主
回答量:45
采纳率:0%
帮助的人:28.6万
展开全部
//an1 = new JButton(new ImageIcon(""));
an1.setToolTipText("新建"); //!!!!!!提示异常处!!!!!!

对象都没有new,把注释去掉就不报空指针异常了
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
北羽星Shine
2014-08-05 · TA获得超过114个赞
知道答主
回答量:22
采纳率:100%
帮助的人:14.4万
展开全部
把你注释的那行代码取消注释

an1 = new JButton(new ImageIcon(""));

因为你的an1只是定义了,尚未初始化,直接使用,肯定报null了
本回答被提问者和网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
匿名用户
2014-08-05
展开全部
少一个括号!
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(2)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式