WindowBuilderデザインウィンドウを使用して作成しているウィンドウに、*。icoファイルから外部アイコンを追加しようとしています。 「画像」プロパティフィールドを表示するシェルを選択できます。 これにより、画像選択ダイアログボックスが表示されます。
アイコンをクラスパスリソースとしてこのメニューに表示するにはどうすればよいですか?絶対パスが指定されている場合、イメージは機能しますが、アプリケーションでそのオプションを使用したくありません。
ありがとう!
クラスパスにアイコンを簡単に追加するために、目的のアイコンを見つけて右クリックし、[コピー]を選択してから、Eclipseでプロジェクトのパッケージの1つに移動し、右クリックして[貼り付け]を選択しました。次に画像選択ダイアログボックスを表示したときに、ローカルパッケージに使用可能なクラスパスリソースとしてアイコンが表示されていたので、それを選択しました。
プロジェクトを実行可能なJARにエクスポートできましたが、アイコンは引き続き機能しました。
私が機能していることがわかった解決策は、画像を含むjarを作成し、それをクラスパスに追加することです。次に、2番目のスクリーンショットのダイアログからそれらを選択できるようになります。
これは、ビルドパスにあるディレクトリで機能していたことを覚えています。今ではjarパッケージに入れられているようです。
サポートされているあらゆる種類の画像をプロジェクトに追加するには、プロジェクトの「src」フォルダと「新規...パッケージ...」を右クリックし、「名前」の下に「リソース」などを入力します。その後は、そこに画像をコピーするだけです。プロジェクトを実行可能なJARにエクスポートすると、すべてのリソースが一緒になり、正常に実行されます。
WindowBuilderでこれを行う方法はわかりませんが、setImage()
またはsetImages()
を介してImage
を構築するときに、Shell
リソースを指定できます。後者を使用することをお勧めします。これは、ウィンドウのコントロールボックス、Windowsタスクバー、alt + tabリストなど、さまざまな解像度のアイコンがプラットフォームに提供されるためです。
リソースからロードするには:
final Image small = new Image(Shell.getDisplay(),
"resources/images/icon_16.png");
final Image large = new Image(Shell.getDisplay(),
"resources/images/icon_32.png");
final Image[] images = new Image[] { small, large };
Shell.setImages(images);
この例では、「images」を含むサブフォルダー「resources」があり、次に2つのPNGがあります。リソースJARの指定は、試したことはありませんが、同じように機能するはずです。
私の場合、WindowBuilderは* .ico形式を認識しましたが、デフォルトのJavaアイコンをカスタムアイコンに置き換えませんでした。*。icoを* .pngに変換したときのみです(- この便利なオンラインツールを介して )WindowBuilderが最終的にデフォルトのJavaアイコンをカスタムの「アイコン」に変更しましたが、実際にはPNGです。WindowBuilderができることを期待していました。 ICO形式を認識します。
Eclipse Juno4.2では。多くの場合、イメージチューザーはリソースフォルダーを表示しません(たとえば、Maven構造のプロジェクトから:src/main/resources。おそらくそれはバグです。
Javaビルドパスウィンドウ([ソース]タブ)]のincludeオプションを使用してリソースフォルダーを明示的に削除してから追加すると、ポップアップが表示されます。「include」オプションを削除して設定した後でも、 「すべて」に戻ると、引き続き表示されます。
もちろん、src/main/resourcesフォルダーを右クリックすると、コンテキストメニューから直接削除および追加できます。