Javaアプリケーションのアイコンの設定について

このQ&Aのポイント
  • Javaアプリケーションのアイコンを設定する方法について説明します。
  • GUIアプリを作成し、プログラムアイコンを設定する方法についての質問です。
  • jarファイルのプログラムアイコンがデフォルトのjavaアイコンになってしまう問題について解決策を教えてください。
回答を見る
  • ベストアンサー

Javaアプリケーションのアイコンの設定について

GUIアプリを作成し、以下の方法でプログラムアイコンを設定しました。 アイコンはmainクラスのあるフォルダと同じ場所においてあります。 ImageIcon icon = new ImageIcon("./src/icon.PNG"); frame.setIconImage(icon.getImage()); この方法でプログラムアイコンが設定出来たのですが、 Eclipseのエクスポートからjarファイルを作成し、作成されたjarファイル を実行してみたところ、プログラムアイコンが自分で設定したもの ではなくデフォルトのjavaアイコンになってしまっていました。 アイコンの設定方法か、jarファイルの作成方法に問題があると 思うのですが、どうすればjarファイルのプログラムアイコンが 自分で設定したものになるのでしょうか。

  • Java
  • 回答数3
  • ありがとう数3

質問者が選んだベストアンサー

  • ベストアンサー
  • aton
  • ベストアンサー率47% (160/334)
回答No.3

> この場合、どのクラスのインスタンスを生成すれば良いのでしょうか。 この場合だとMyClassです。 MyClassにはコンストラクターが無いようですが,その場合はデフォルト・コンストラクターが使えますから, URL imageIconUrl = (new MyClass()).getClass().getClassLoader().getResource("icon.PNG"); という感じになるかと思います。

ta1919
質問者

お礼

返事が遅くなってすみません。 おかげで、アプリのアイコンを変更することが出来るようになりました。 本当にありがとうございました。

その他の回答 (2)

  • aton
  • ベストアンサー率47% (160/334)
回答No.2

> "icon.PNG"を含んだJARファイルの作成はどのようにすれば良いのでしょうか。 方法は色々あると思います。jarのヘルプ(jar -help)やEclipseのヘルプを見てください。Eclipseでやる場合は,たぶんエクスポートするまえにアイコンファイルをEclipseのプロジェクト内にインポートする必要があると思います。 > getClass()の部分で「型 Object の非 static メソッド getClass() を static 参照することはできません」 > というエラーが出てしまい、使用できませんでした。 staticメソッド内でインスタンスを指定せずにgetClass()を呼べば上記のエラーが出ます。当該クラスのインスタンスを生成してそのインスタンスのメソッドとしてgetClass()以下を呼べばエラーは出なくなるはずです。 http://www.javaroad.jp/java_class9.htm

ta1919
質問者

補足

回答有難う御座います。 おかげで、画像ファイルを含んだ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)
回答No.1

そもそもJARファイル内に"icon.PNG"ファイルは含まれているのでしょうか? 含まれている場合,JARファイル内のファイルにアクセスするには,リソースとしてアクセスする必要があります。 http://osima.jp/blog/resources_in_jar.htmlhttp://www.ne.jp/asahi/hishidama/home/tech/java/resource.html を参考にすると, URL imageIconUrl = getClass().getClassLoader().getResource("icon.PNG"); ImageIcon icon = new ImageIcon(imageIconUrl); という感じになるのではないかと思います。

ta1919
質問者

補足

回答ありがとうございます。 JARファイルの中身を確認したところ、"icon.PNG"は含まれていませんでした。 "icon.PNG"を含んだJARファイルの作成はどのようにすれば良いのでしょうか。 また、教えて頂いたページを参考にして、ご指摘のコードを追加したところ getClass()の部分で「型 Object の非 static メソッド getClass() を static 参照することはできません」 というエラーが出てしまい、使用できませんでした。 これは、JARファイルに"icon.PNG"が含まれている事とは無関係のエラーだと思うのですが、 何が間違っているのでしょうか。

関連するQ&A

  • Eclipse3.6でSwingアプリケーションを作成しています。

    Eclipse3.6でSwingアプリケーションを作成しています。 ImageIconで画像のアドレスを登録し、画像をボタンとして使用したいのですが、画像のアドレスがフルアドレスでないとEclipse上で実行したときに画像が表示されません。 起動しているJAVAファイルと画像ファイルは同じ場所に保存してあります。 何か他の設定があるのでしょうか? 通常のJAVAコンパイル時のソース ImageIcon icon1 = new ImageIcon("./test.png"); JButton button1 = new JButton(icon1); ※このソースではEclipse上では画像が表示されない Eclipse上で起動させて時のソース ImageIcon icon1 = new ImageIcon("c:/eclipse/workspace/src/test.png"); JButton button1 = new JButton(icon1); 以上です。 宜しくお願いします。

    • ベストアンサー
    • Java
  • Javaの実行可能圧縮ファイル、*.jarアイコンに画像を付ける。

    Javaの実行可能圧縮ファイル、*.jarアイコンに画像を付ける。 eclipse3.5で実行可能jarをエクスポートして作成しています。 *.jarアイコンに画像を設定する方法を知りたいです。 ご存知の方がおられましたら教えてください。 よろしくお願いいたします。

    • ベストアンサー
    • Java
  • jar化すると画像が消える

    お世話になります。 環境 OS:Windows7 IDE:eclipse galileo 1.2.2.20100216-1730 タスクトレイにアイコンを表示するプログラムを作成しています。 eclipse上での動作においては何の不備も見あたらず、特に問題なく動作します。 しかし、エクスポートでxxxx.jarにして動かすと、eclipseではきちんと表示されていたタスクバーのアイコンが、表示されなくなってしまいました(プログラムそのものは動いており、アイコンの表示されない真っ白な状態でタスクバーに常駐しています)。 jarの中身を解凍してみると、アイコン用の画像ファイルが入っていませんでした。 プログラムにおける、画像の取得に関しては下記のようにしております。 URL url = getClass().getResource("xxxxx.png"); Image readImage = Toolkit.getDefaultToolkit().getImage(url); TrayIcon icon = new TrayIcon(readImage, "xxxxx", popup); 質問の内容と致しましては 1.画像がjarに入らない原因(一緒にエクスポートされない原因) および 2.取得する画像が無いのに、なぜエラーを出さずに動作するのか です。

    • ベストアンサー
    • Java
  • eclipseでjarファイル内のリソースファイルをうまく扱うには?

    こんにちわ。 私は今、windows XP + eclipse 3.1.1(日本語化済) でswingアプリケーションを作っています。 完成後は、実行可能jarファイルとして配布したいと考えています。 jarファイル内の画像ファイルを読み込んで、トグルボタンの アイコンに使いたいので、メインクラス内で、 jToggleButton1.setIcon(new ImageIcon(getClass().getClassLoader().getResource("images/transition.jpg"))); という記述をしました。 「ファイル」→「エクスポート」→「jarファイル」 で、実行可能jarファイルを作ったときはちゃんと 画像が読み取れているのですが、 eclipseから直接実行をすると、以下のようなNullPointerException が発生してしまいます。 java.lang.NullPointerException at javax.swing.ImageIcon.<init>(Unknown Source) at DTT.getJToggleButton1(DTT.java:261) at DTT.getJPanel5(DTT.java:216) at DTT.getJScrollPane(DTT.java:203) at DTT.getJPanel(DTT.java:99) at DTT.initialize(DTT.java:478) at DTT.<init>(DTT.java:468) at DTT.main(DTT.java:458) (DTTという名前のアプリケーションなのです。。) jarに出力する場合と、eclipseから直接実行する場合で 記述を変える必要があるのでしょうか? それともデフォルト作業ディレクトリの指定などを適切に行えば 統一的に扱えるようになるのでしょうか? なにとぞよろしくお願いします。

    • ベストアンサー
    • Java
  • javaを始めるにあたって

    javaを始めようと思って、入門書を買い、一通り読んでみたのですが、 いくつかわからないことがあり、質問させてください。 1)外部のjarファイル込みでコンパイルは可能なのでしょうか? (入門書では、実行時に必ずjava -classpath=xxxx; を指定する形なのですが、-classpathを取り除くことは出来るのでしょうか?) 2)コンパイルしたファイルの拡張子は何を指定すべきでしょうか?(.exe?) 3)コンパイル後、コンパイルしたファイルをそのままマウスクリックなどで実効することは出来ないのでしょうか? 4)色々なクラスがあるようなのですが、クラスの体系的なヘルプはどのように調べるのでしょうか? (クラスにどんなメンバがあるか知りたい時や、どんなクラスがあるのか知りたい時などに使いたいです。) 5)eclipseという開発環境を使用するのが普通なのでしょうか?また、GUI付きのアプリを作成するときにGUIから作成(部品を配置していく、VBのようなイメージです。)していくようなことは可能なのでしょうか? 6)eclipseの使い方は、何か書籍を読んだほうが良いのでしょうか? いきなり使ってもネットで調べれば何とかなるものでしょうか? 長くなりましたが、よろしくお願いします。

    • ベストアンサー
    • Java
  • NetBeansおよびSwing Application Framework について

    質問させてください。 【環境】 OS:WinXP Home NetBeans 6.5.1 JDK6 【インスペクタの内容】 フォーム DesktopApplication1View [FrameView] + mainPanel[JPanel] + munuBar[JMenuBar] + statusPanel[Jpanel] 1.GUIビルダーでタイトルバーを含めたデザインの表示 はできますでしょうか? GUIアプリケーションを作成する際は、これまでVisualStudio.NETなどを使ってきたのでタイトルバーのない表示に戸惑っています。(デザインのプレビューをすればすぐに表示させることはできますが) 2.アプリケーションアイコンの設定 pngやicoファイルをプロジェクトのresourcesパッケージ下に放り込み、それを呼び出すような形で設定したい。 アイコンはタイトルバーの左隅に表示させる小さいアイコン(16*16pixel?)及び、実際にクリック起動に使うjarの32*32pixel?のアイコンの両方を設定したい。(そのようなプロパティが見当たらない為、手書きでやるしかないと思われますが) 方法を教えていただきたいです。 アプリ名App.javaへ以下のように書きましたが、反映されませんでした (エラーも出ず) @Override protected void startup() { ClassLoader cl = this.getClass().getClassLoader(); ImageIcon icon = new ImageIcon( cl.getResource( "アプリ名\\resources\\search.png" )); this.getMainFrame().setIconImage(icon.getImage()); show(new AnalyzerView(this)); } 3.フォームサイズの固定 正確に言えば、JFrameサイズの固定?(ウィンドウリサイズの禁止) VisualStudioで例えると、MaximumSizeプロパティをFalse(真ん中の最大化ボタンを無効化) FormBorderStyleにFixedDialog の挙動にしたい。 4.ショートカットキーの設定 メニューバーのメニューやボタンなどにショートカットキーを設定したいです。 ファイル(F) 見たいな感じでです。要はAltでショートカットを発動させたいということです。 以上です。よろしくお願いします。

    • ベストアンサー
    • Java
  • Ecliplseでは動作するが、JARファイル実行時には動作しない

    Ecliplseでは動作するが、JARファイル実行時には動作しない WINDOWS(XP)環境にて、 JDK、ECLIPSE共に現在の最新のものを使用してゲームを作成しています。 (jdk1.6.0_21、Eclipse(Ver 3.6)) Eclipse上では実行すると正常に動作しますが、 File>EXPORT>JAVA>JAR fileを使用して、JARファイルを作成すると、 (エクスポート時のウィザード設定は全てデフォルト、 JARファイル保存先とmainクラスのみ指定) 作成したJARファイルは起動するだけで何も処理が始まりません。 (JARファイル自体は作成されるが、実行後フレームだけ表示される) エラーの切り分けなど、方法がわからないため、ここから先に進めないでいます。 例として何かエラーになりうる要素があるとすれば、御教授お願い致します。 また、フォルダ階層が下記のようになっている場合、 コマンドプロンプトからのjarファイル作成は どのようなコマンドになるのでしょうか。 御教授お願い致します。 /******************************************************************************* プロジェクトフォルダ    ?.settings        ?org.eclipse.jdt.core.prefs    ?bin        ?パッケージ名称              ?CLASSファイル、各材料(midi、wav、gif、png、jpg等)    ?src        ?パッケージ名称              ?JAVAファイル、各材料(midi、wav、gif、png、jpg等)    ?META-INF        ?.mfファイル    ?.classpathファイル    ?.projectファイル *******************************************************************************/

    • ベストアンサー
    • Java
  • Eclipseを用いたJARファイル作成について

    Eclipseを用いてjavaのプログラムをしているのですが アプレットのプログラム"のみ"がJARファイルにエクスポートできずに困っております。 [プロジェクト]を右クリック→[エクスポート]→[JARファイル]に設定するところまでは良いのですが 「JARマニフェスト仕様」というページの、「アプリケーションのエントリー・ポイントのクラスを指定」という項目で、メインクラスを参照しても アプレットのプログラムのクラス"のみ"が表示されていないのでエクスポートできません。コンソールのプログラムのクラスは表示されているので おそらく、アプレットにはmainメソッドを用いていないので表示されないのだと思うのですが・・・。 mainメソッドがないプログラムの場合はどうすれば良いのでしょうか・・・? 自分なりに、↓など調べてみたのですがどこがいけないのかわかりません。 http://mailsrv.nara-edu.ac.jp/~asait/java/applet/applet.htm http://sunjava.seesaa.net/article/57546363.html どこをどうすればこの場合、EclipseでJARファイルが作成できるのか、詳しく教えていただければ助かります。 一応、アプレットは↓の簡単なプログラムを試してみました。実行は出来ます。 import java.applet.Applet; import java.awt.Graphics; public class Sample extends Applet { public void paint(Graphics g) { g.drawString("こんにちは",10,10); } }

  • javaアプリケーションの起動方法について

    通常WINDOWS上でJAVAアプリケーションのjarファイルをダブルクリックするとアプリケーションが立ち上がりますが、例えばシフトキーを押しながらダブルクリックして立ち上げるとGUIの表示を変えたりといった、条件分岐をしたいのですが、そもそもJAVAでこう言ったことが可能なのでしょうか?参考情報やサイトなどがあれば教えてください。

  • javaの実行可能ファイルの実行(引数あり)

    今日は、 Windows7で、Eclipseを使用しまして、javaの実行可能ファイル(T_MainDP.jar)を作成しています。 この実行可能ファイルを実行する場合に、引数が無い場合は、T_MainDP.jarなるIconをクリック しますと、実行できます。 もし、引数がある場合は、DOS窓のコマンドプロンプトから、”T_MainDP.jar 引数" をキーインして 実行できます。 Q1)引数がある場合に、DOS窓を起動すること無く、プログラム起動する方法はありますか? この件に関しまして、コメント頂けますと大変助かります。 以上

    • ベストアンサー
    • Java