10

わかりましたので、私はこれを少し静かに研究してきました。私は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);

}
4

5 に答える 5

15

I have an answer for you. First, make sure that the images are in a folder, not a package. Next, insert this line of code:

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

This code gets the image from the class path, and returns it as a image icon, and then it sets it. This should add the image icon to the application. If it doesn't, then tell me.

EDIT: After you told me that that didn't work then I decided to take a second crack at it... First, put your images into a completely separate folder. I usually call this /res. Next, put your image in there. Now, for loading I took a completely different route. I decided to use ImageIO instead of default loading. To load the image, you use this code:

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

ImageIO works a lot better for loading images. If this still doesn't work then please tell me.

If you want to export this as a JAR then put a folder the same name as you used in the program in the same directory as the JAR.

于 2013-08-13T11:15:09.890 に答える
2

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

try {
   Image image = new ImageIcon("/icons/image.jpg").getImage();
   frame.setIconImage(image);
}catch(Exception e){
   System.out.println("Application icon not found");
}
于 2015-07-14T09:16:31.640 に答える