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);
}
} 展开
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);
}
} 展开
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出来啊~~
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
//an1 = new JButton(new ImageIcon(""));
an1.setToolTipText("新建"); //!!!!!!提示异常处!!!!!!
对象都没有new,把注释去掉就不报空指针异常了
an1.setToolTipText("新建"); //!!!!!!提示异常处!!!!!!
对象都没有new,把注释去掉就不报空指针异常了
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
把你注释的那行代码取消注释
an1 = new JButton(new ImageIcon(""));
因为你的an1只是定义了,尚未初始化,直接使用,肯定报null了
an1 = new JButton(new ImageIcon(""));
因为你的an1只是定义了,尚未初始化,直接使用,肯定报null了
本回答被提问者和网友采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
2014-08-05
展开全部
少一个括号!
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询