import java.awt.*;
import java.awt.event.*;
public class Project_notepad
{
private Frame f; //basic frame
public MenuBar mb; //menubar declaration
private Menu File, Edit, Format,View, Findit;
private MenuItem new_file,new_window,open,save,save_as, close, cut, copy, paste, case_convert, indent,font,style,size,underline,italic,bold,finds, incremental_find,replace;
private CheckboxMenuItem status_bar,word_wrap,hide_menu_bar,full_screen;
public Project_notepad()
{
f=new Frame();
Dimension screenSize = Toolkit.getDefaultToolkit().getScreenSize(); class object for setting max screen size
f.setBounds(0,0,screenSize.width, screenSize.height);
mb=new MenuBar(); //menu bar declaration
File=new Menu("File");
Edit=new Menu("Edit");
Format=new Menu("Format");
View=new Menu("View");
Findit=new Menu("Find");
new_file=new MenuItem("new file"); //menu items declaration
new_window=new MenuItem("new window");
open=new MenuItem("open");
save=new MenuItem("save");
save_as=new MenuItem("save as");
close=new MenuItem("close");
cut=new MenuItem("cut");
copy=new MenuItem("copy");
paste=new MenuItem("paste");
case_convert=new MenuItem("case convert");
indent=new MenuItem("indent");
font=new MenuItem("font");
style=new MenuItem("style");
size=new MenuItem("size");
underline=new MenuItem("underline");
italic=new MenuItem("italic");
bold=new MenuItem("bold");
incremental_find=new MenuItem("incremental_find");
replace=new MenuItem("replace");
status_bar=new CheckboxMenuItem("status bar"); //chechkbox items declaration
word_wrap=new CheckboxMenuItem("word wrap");
hide_menu_bar=new CheckboxMenuItem("hide menu bar");
full_screen=new CheckboxMenuItem("full screen");
File.add(new_file); //adding items to menu bar
File.add(new_window);
File.add(open);
File.add(save);
File.add(save_as);
File.add(close);
Edit.add(copy);
Edit.add(paste);
Edit.add(case_convert);
Edit.add(indent);
Format.add(font);
Format.add(style);
Format.add(size);
Format.add(underline);
Format.add(italic);
Format.add(bold);
Findit.add(finds);
Findit.add(incremental_find);
Findit.add(replace);
View.add(status_bar);
View.add(word_wrap);
View.add(hide_menu_bar);
View.add(full_screen);
mb.add(File);
mb.add(Edit);
mb.add(Format);
mb.add(View);
mb.add(Findit);
f.setMenuBar(mb);
f.setVisible(true);
}
public static void main(String args[])
{
Project_notepad pr=new Project_notepad();
}
}
实际上,我正处于开发java实践记事本的初始阶段,但是将NullPointerException视为
at java.awt.Menu.add(Menu.java:262)
at Project_notepad.<init><Project_notepad.java:65>
at Project_notepad.main<Project_notepad.java:92>
这里,project_notepad是我的文件名和我的类。 我已经搜索了它的原因 试图调用null对象的实例方法,试图访问或修改null对象的特定字段, 尝试获取此类null对象的长度作为数组。 但无法链接到我的代码中的任何错误原因。 需要帮助。 提前谢谢。
答案 0 :(得分:2)
在第65行添加变量时,尚未初始化“finds”变量。 将其添加到上面的初始化列表中:
finds = new MenuItem("finds");
另外,获得更好的IDE。大多数人应该告诉你是否还没有初始化某些东西,你可以在编译之前捕获它。
答案 1 :(得分:1)
如果要对整个代码库执行此操作,也可以尝试以下工具: Find Bugs