- ベストアンサー
Javaアプリケーションのアイコンの設定について
- Javaアプリケーションのアイコンを設定する方法について説明します。
- GUIアプリを作成し、プログラムアイコンを設定する方法についての質問です。
- jarファイルのプログラムアイコンがデフォルトのjavaアイコンになってしまう問題について解決策を教えてください。
- みんなの回答 (3)
- 専門家の回答
質問者が選んだベストアンサー
> この場合、どのクラスのインスタンスを生成すれば良いのでしょうか。 この場合だとMyClassです。 MyClassにはコンストラクターが無いようですが,その場合はデフォルト・コンストラクターが使えますから, URL imageIconUrl = (new MyClass()).getClass().getClassLoader().getResource("icon.PNG"); という感じになるかと思います。
その他の回答 (2)
- aton
- ベストアンサー率47% (160/334)
> "icon.PNG"を含んだJARファイルの作成はどのようにすれば良いのでしょうか。 方法は色々あると思います。jarのヘルプ(jar -help)やEclipseのヘルプを見てください。Eclipseでやる場合は,たぶんエクスポートするまえにアイコンファイルをEclipseのプロジェクト内にインポートする必要があると思います。 > getClass()の部分で「型 Object の非 static メソッド getClass() を static 参照することはできません」 > というエラーが出てしまい、使用できませんでした。 staticメソッド内でインスタンスを指定せずにgetClass()を呼べば上記のエラーが出ます。当該クラスのインスタンスを生成してそのインスタンスのメソッドとしてgetClass()以下を呼べばエラーは出なくなるはずです。 http://www.javaroad.jp/java_class9.htm
補足
回答有難う御座います。 おかげで、画像ファイルを含んだjarファイルを作成する事が出来るようになりました。 インスタンスを生成せずに、メソッドを使用しているためにエラーが 発生している事も理解できました。 しかし、当該クラスが何を指しているのかがわかりません。 今のメインクラスのコードは以下の様になっています。 public class Myclass { public static void main(String[] args) { JFrame frame = new JFrame("タイトル"); OrgPanel panel1 = new OrgPanel(); //JPanelを継承したオリジナルクラス //コンテナ生成 Container cont = frame.getContentPane(); cont.add(panel1); frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); frame.setBounds(250, 40, 885, 715); frame.setVisible(true); //アプリアイコン設定 URL imageIconUrl = frame.getClass().getClassLoader().getResource("./src/icon.PNG"); ImageIcon icon = new ImageIcon(imageIconUrl); frame.setIconImage(icon.getImage()); } } frameやpanel1、contが当該クラスなのかと思ったのですが どれを試してもプログラムアイコンは表示されませんでした。 この場合、どのクラスのインスタンスを生成すれば良いのでしょうか。
- aton
- ベストアンサー率47% (160/334)
そもそもJARファイル内に"icon.PNG"ファイルは含まれているのでしょうか? 含まれている場合,JARファイル内のファイルにアクセスするには,リソースとしてアクセスする必要があります。 http://osima.jp/blog/resources_in_jar.html や http://www.ne.jp/asahi/hishidama/home/tech/java/resource.html を参考にすると, URL imageIconUrl = getClass().getClassLoader().getResource("icon.PNG"); ImageIcon icon = new ImageIcon(imageIconUrl); という感じになるのではないかと思います。
補足
回答ありがとうございます。 JARファイルの中身を確認したところ、"icon.PNG"は含まれていませんでした。 "icon.PNG"を含んだJARファイルの作成はどのようにすれば良いのでしょうか。 また、教えて頂いたページを参考にして、ご指摘のコードを追加したところ getClass()の部分で「型 Object の非 static メソッド getClass() を static 参照することはできません」 というエラーが出てしまい、使用できませんでした。 これは、JARファイルに"icon.PNG"が含まれている事とは無関係のエラーだと思うのですが、 何が間違っているのでしょうか。
お礼
返事が遅くなってすみません。 おかげで、アプリのアイコンを変更することが出来るようになりました。 本当にありがとうございました。