web-dev-qa-db-ja.com

JFrameのJavaアイコンを変更する方法

さて、私はこれを少し静かに研究してきました。私はJavaにかなり慣れていませんが、これは簡単だと思いました。このサイトで回答されたほぼすべての方法を試しましたが、まだ運がありません。通常、ここを見ると私は私が探しているものに合う答えを見つけることができます。JFrameの上隅にあるJavaアイコンを変更する方法を知っている人はいますか。ファイルパスではないことを確信しています。私のすべての画像が同じフォルダにあり、それらがすべて機能するため、これは私が機能することができないように見える唯一の画像です。

これは私のプログラムのメインメニューのコードの最初の部分であり、アイコン画像を追加しようとする場合を除いてすべてが機能します。以下に入力したコードには、JFrame IconImageのコードが含まれていません。機能しなかったため、削除しました。したがって、このコードを使用して動作させる方法を知っている人がいて、非常に高く評価されている場合は、事前に感謝します。

public class MainFrame
{
private MyPanel main;
private MyPanel2 create;
private MyPanel3 update;
private MyPanel4 find;
JFrame frame = new JFrame("Main Menu:");

public void displayGUI()
{
    frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
    JPanel contentPane = new JPanel();
    contentPane.setBorder(BorderFactory.createEmptyBorder(0, 0, 0, 0));
    contentPane.setLayout(new CardLayout());
    main = new MyPanel(contentPane, this);
    create = new MyPanel2(contentPane);
    update = new MyPanel3(contentPane);
    find = new MyPanel4(contentPane);
    contentPane.add(main, "Main Menu");
    contentPane.add(create, "Create Part");
    contentPane.add(update, "Update Part");
    contentPane.add(find, "Find Part");
    frame.setLocation(200, 200);
    frame.setSize(700, 580);
    frame.setContentPane(contentPane);

    frame.setVisible(true);

}
10
Garrett Shaw

答えがあります。まず、画像がパッケージではなくフォルダにあることを確認します。次に、次のコード行を挿入します。

Image image = Toolkit.getDefaultToolkit().getImage(getClass().getResource("path/to/image.png"));
ImageIcon icon = new ImageIcon( );
setIconImage(icon.getImage());

このコードは、クラスパスから画像を取得し、それを画像アイコンとして返し、設定します。これにより、画像アイコンがアプリケーションに追加されます。そうでない場合は、教えてください。

編集:あなたがそれがうまくいかなかったと私に言った後、私はそれで2番目の亀裂を取ることに決めました...最初に、あなたの画像を完全に別のフォルダに入れてください。私は通常これを/ resと呼びます。次に、そこに画像を入れます。さて、ロードのために私は完全に異なるルートを取りました。デフォルトのロードの代わりにImageIOを使用することにしました。画像を読み込むには、次のコードを使用します。

try {
    frame.setIconImage(ImageIO.read(new File("res/icon.png")));
}
catch (IOException exc) {
    exc.printStackTrace();
}

ImageIOは、画像の読み込みに非常に適しています。それでも機能しない場合は、教えてください。

これをJARとしてエクスポートする場合は、プログラムで使用したのと同じ名前のフォルダーをJARと同じディレクトリに配置します。

14
user2675678

たとえば、NetBeansプロジェクトでは、srcフォルダにresourcesフォルダを作成します。

そこにあなたの画像(jpg、...)を入れてください。

ImageIOまたはToolkit(getResourceを含む)のどちらを使用する場合でも、画像ファイルへのパスに先頭の/を含める必要があります。

Image image = Toolkit.getDefaultToolkit().getImage(getClass().getResource("/resources/agfa_icon.jpg"));
setIconImage(image);

このコードがJFrameクラス内にある場合、画像はタイトルバーのアイコンとしてフレームに追加されます。

2
Alain Demortier

これは私にとってはかなりうまくいきます。 JFrameを作成したら、これを追加するだけです。

try {
   Image image = new ImageIcon("/icons/image.jpg").getImage();
   frame.setIconImage(image);
}catch(Exception e){
   System.out.println("Application icon not found");
}
2
Al-amin Nowshad
  1. 最初に同じパッケージに画像アイコン(fav.png)を貼り付けます。
  2. コンストラクターJFrameに次のコードを記述します。

setIconImage(Toolkit.getDefaultToolkit()。getImage(getClass()。getResource( "fav.png")));

注:fav.pngはアイコンの名前です

1
ersks
this.setIconImage(new ImageIcon(getClass().getResource("/iconsfolder/iconsname.jpg")).getImage()); 
          // sets the Global icon for the system

このコードの後に​​このコードを置いてみてください:

public void displayGUI()
{
0
kegs Production