10

ImageIcon は、NetBeans を使用してボタン プロパティに追加されます。

    print.setFont(new java.awt.Font("Serif", 0, 14)); 
    print.setIcon(new javax.swing.ImageIcon(getClass().getResource("/project/print.gif"))); 
    print.setMnemonic('P');
    print.setText("Print");
    print.setToolTipText("Print");

そして、コンパイルすると表示されます

Exception in thread "AWT-EventQueue-0" java.lang.NullPointerException
    at javax.swing.ImageIcon.<init>(ImageIcon.java:205)
    at project.Editor.initComponents(Editor.java:296)

私は何を間違っていますか?

4

4 に答える 4

8

NullPointerException が発生する理由は、指定しようとしている画像ファイルが何らかの理由で見つからないためです。したがって、getResource()メソッドは null を返します。

最初に、このリンクでアイコンの追加について読むことができます: 「アイコンの使用方法」

彼らが提案する方法の 1 つは、メソッドを作成することです。

/** Returns an ImageIcon, or null if the path was invalid. */
protected ImageIcon createImageIcon(String path,
                                           String description) {
    java.net.URL imgURL = getClass().getResource(path);
    if (imgURL != null) {
        return new ImageIcon(imgURL, description);
    } else {
        System.err.println("Couldn't find file: " + path);
        return null;
    }
}

このメソッドを使用する利点は、アイコンを追加するときにいつでも複数回使用できるユーティリティ メソッドであることとは別に、指定したパスに画像が見つからない場合にエラーが表示されることです。

これは、あなたが提供したパスと関係があると強く思います。フォルダ構造を見てみると良いでしょう。パスを「project/print.gif」として渡してみてください

于 2012-10-31T06:20:54.240 に答える
0

指定したディレクトリに画像ファイルが配置されていないことが原因です。なんらかの名前の入力ミスか、名前が変更された可能性があります。

于 2020-11-27T17:05:54.177 に答える