2013-03-29 15 views
1
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作爲如何解決我的代碼中的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是我的文件以及我的類的名稱。 我查找了它的原因爲 嘗試調用空對象的實例方法,嘗試訪問或修改空對象的特定字段, 嘗試獲取與數組類似的空對象的長度。 但無法鏈接到我的代碼中的任何錯誤的原因。 需要幫助。 在此先感謝。

+3

嗯,這是第65行?無論您試圖添加哪個項目,它實際上都是「空」。 –

+1

請告訴我們哪一行是L65。 – Thilo

+1

你確定你需要所有這些字段嗎?如果你使它們成爲局部變量,編譯器會告訴你哪一個沒有初始化。 – Thilo

回答

2

您還沒有初始化的「發現」如果你把上線65 變量給你的初始化列表添加上面:

finds = new MenuItem("finds"); 

另外,獲得更好的IDE。大多數人應該告訴你是否還沒有初始化某些東西,並且可以在編譯之前捕獲它。

+0

是的。我正在使用崇高的文本,因爲我處於學習階段,並且想要了解每個概念,錯誤的每個原因,每種語法和語義,而初始級別的良好IDE將會嚴格執行。 –

+0

謝謝,弄了很多初始化。 –

1

您還可以試試下面的工具,如果你想這樣做對整個代碼庫: Find Bugs

相關問題