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を

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 オブジェクトの長さを配列として取得しようとした、として検索しました。しかし、私のコードでエラーが発生する理由にリンクすることはできません。助けが必要です。前もって感謝します。

4

2 に答える 2

2

65 行目に追加したときに「finds」変数を初期化していません。これを上記の初期化のリストに追加します。

finds = new MenuItem("finds");

また、より良い IDE を入手してください。何かを初期化しておらず、コンパイルする前にそれをキャッチできるかどうかを知る必要があります。

于 2013-03-29T12:02:00.127 に答える
1

コードベース全体に対して実行したい場合は、次のツールを試すこともできます: バグの検索

于 2013-04-01T05:56:34.240 に答える