0

NetBeans GUIBuilder を使用して JPanel フォームを作成しています。JLabel を追加し、NetBeans のインターフェースを使用して、外部画像 (.png) からアイコンを指定しました。パスが検証され、イメージが GUIBuilder 画面に表示されます。「Preview Design」ボタンをクリックしても表示されます。プロジェクトを実行しても表示されません。GUI の残りの部分は正常に表示されます。なぜこれが起こっているのか、および/またはそれを修正する方法を知っている人はいますか?

多くの方から SSCCE を求められてきました。コードは NetBeans Form Builder によって生成されるため、代わりに、JLabel を作成するために行った手順を含めました。注目のエリアは赤丸で囲んでいます。

  1. JLabel を Form Builder にドラッグ アンド ドロップします。 JLabel を Form Builder にドラッグ アンド ドロップします。

  2. JLabel のプロパティ メニューを開きます。フィールドに空の文字列 ("") を入力しtextます。の横にある省略記号をクリックしiconます。 JLabel のプロパティ メニューを開きます。 アイコンの横にある省略記号をクリックします。

  3. [外部画像] を選択し、省略記号をクリックします。 [外部画像] を選択し、省略記号をクリックします。

  4. お好みの画像をお選びください。私の場合、それは .png です。 お好みの画像をお選びください。

  5. アイコンのプレビューに画像が表示されることに注意してください。 アイコンのプレビューに画像が表示されることに注意してください。

  6. アイコン メニューとプロパティ メニューを閉じると、フォーム ビルダに JLabel のアイコンとして画像が表示されます。 アイコン メニューとプロパティ メニューを閉じて、フォーム ビルダに画像が表示されることを確認します。

型破りな SSCCE を受け入れていただき、ありがとうございます。

4

3 に答える 3

1

Netbeans GUI ビルダーにすべてを任せるのは間違いであるという難しい方法を見つけました。

以下のようなアイコン フェッチ クラスを作成し、アイコンをそのパッケージに入れ、「イメージ チューザー」の代わりに「カスタム コード」を使用します。確かに、アイコンは NB 内では表示されません。しかし、アプリの実行中にそれらが表示された場合、誰が気にします.

package com.example.resource.icons;

import javax.swing.ImageIcon;

public class IconFetch {

    private static IconFetch instance;

    private IconFetch(){
    }

    public static IconFetch getInstance() {
        if (instance == null)
            instance = new IconFetch();
        return instance;
    }

    public ImageIcon getIcon(String iconName) {
        java.net.URL imgUrl = getClass().getResource(iconName);
        if (imgUrl != null) {
            return new ImageIcon(imgUrl);
        } else {
            throw new IllegalArgumentException("This icon file does not exist");
        }
    }

    public static final String MINESWEEPER_ONE = "one.png";
}

使用法:

IconFetch.getInstance().getIcon(IconFetch.MINESWEEPER_ONE);

これを試してもアイコンが表示されない場合は、フォーム内のコンポーネントの配置方法に問題がある可能性があります (ラベルはあるのに表示されない)。

たとえそれがロングショットであっても、これが役立つことを願っています。

于 2012-06-06T10:20:34.587 に答える