WindowBuilder デザイン ウィンドウを使用して作成しているウィンドウに、*.ico ファイルから外部アイコンを追加しようとしています。シェルを選択すると、「イメージ」プロパティ フィールドが表示されます。
これにより、画像選択ダイアログ ボックスが表示されます。
アイコンをクラスパス リソースとしてこのメニューに表示するにはどうすればよいですか? 絶対パスが指定されている場合、画像は機能しますが、アプリケーションでそのオプションを使用したくありません。
ありがとう!
WindowBuilder デザイン ウィンドウを使用して作成しているウィンドウに、*.ico ファイルから外部アイコンを追加しようとしています。シェルを選択すると、「イメージ」プロパティ フィールドが表示されます。
これにより、画像選択ダイアログ ボックスが表示されます。
アイコンをクラスパス リソースとしてこのメニューに表示するにはどうすればよいですか? 絶対パスが指定されている場合、画像は機能しますが、アプリケーションでそのオプションを使用したくありません。
ありがとう!
クラスパスにアイコンを簡単に追加するために、目的のアイコンを見つけて右クリックし、「コピー」を選択してから、Eclipse でプロジェクトのパッケージの 1 つに移動し、右クリックして「貼り付け」を選択しました。次にイメージ チューザー ダイアログ ボックスを表示したとき、ローカル パッケージには利用可能なクラスパス リソースとしてリストされたアイコンがあり、それを選択しました。
プロジェクトを実行可能な JAR にエクスポートできましたが、アイコンは引き続き機能しました。
私が見つけた解決策は、画像を含むjarを作成し、それをクラスパスに追加することです。次に、2 番目のスクリーン ショットのダイアログからそれらを選択できるようになります。
これは、ビルドパスにあるディレクトリで機能していたことを覚えています。今は強制的にjarパッケージに入っているようです。
サポートされているあらゆる種類の画像をプロジェクトに追加するには、プロジェクトの「src」フォルダと「新規...パッケージ...」を右クリックし、「名前」の下に「リソース」などを指定します。その後は、そこに画像をコピーするだけです。プロジェクトを実行可能なJARにエクスポートすると、すべてのリソースが一緒になり、正常に実行されます。
WindowBuilder でこれを行う方法はわかりませんがImage
、Shell
ビアsetImage()
またはsetImages()
. ウィンドウのコントロール ボックス、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 に変換したときだけ、実際には PNG であるにもかかわらず、WindowBuilder が最終的にデフォルトの Java アイコンをカスタムの「アイコン」に変更しました。WindowBuilder が ICO 形式を認識できることを期待していました。