2013-03-29 21 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? Какой бы предмет вы ни пытались добавить, это фактически «null». –

+1

, пожалуйста, сообщите нам, какая линия L65. – Thilo

+1

Вы уверены, что вам нужны все эти поля? Если вы сделали локальные переменные, компилятор скажет вам, какой из них вы не инициализировали. – Thilo

ответ

2

Вы не инициализированы «находит» переменные при добавлении его в строке 65. Добавить это в список инициализаций выше:

finds = new MenuItem("finds"); 

Кроме того, чтобы лучше IDE. Большинство должно сказать, если вы не инициализировали что-то, и вы можете поймать его перед компиляцией.

+0

yeah..got it.i использую возвышенный текст, поскольку я нахожусь на этапе обучения и хочу понять каждую концепцию, каждую причину ошибок, каждый синтаксис и семантику, тогда как хорошая IDE на начальном уровне сделает это неясно. –

+0

спасибо, заработано так много инициализации. –

1

Вы также можете попробовать следующий инструмент, если вы хотите сделать это для всей кодовой базы: Find Bugs

Смежные вопросы