1

私はコード/アプリケーションの途中で、それを公開するところまで来ました。アプリケーションのアイコン画像を「設定」する方法の簡単なサンプルコードを知りたいです。ディレクトリからアイコン画像を取得するクラスの上部に配置できる単純なコード [/res/Icon.png]

ありがとう<3

4

1 に答える 1

3

Frame#setIconImage(Image)または、もう少し柔軟なものが必要な場合は、Window#setIconImages(List)

によって実証されたように

それらの著者へのクレジットをお願いします

簡単な例で更新

その性質上、画像をロードすると問題が発生する可能性があります。失敗する可能性があるという事実に備える必要があります。うまくいけば、アプリケーションを十分に準備して、通常の操作ではこれがまれな状況になることを願っています。

import java.awt.BorderLayout;
import java.awt.EventQueue;
import java.awt.Image;
import java.io.IOException;
import java.util.ArrayList;
import java.util.List;
import javax.imageio.ImageIO;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.UIManager;
import javax.swing.UnsupportedLookAndFeelException;

public class FrameIconTest {

    public static void main(String[] args) {
        new FrameIconTest();
    }

    public FrameIconTest() {
        EventQueue.invokeLater(new Runnable() {
            @Override
            public void run() {
                try {
                    UIManager.setLookAndFeel(UIManager.getSystemLookAndFeelClassName());
                } catch (ClassNotFoundException | InstantiationException | IllegalAccessException | UnsupportedLookAndFeelException ex) {
                }

                JFrame frame = new JFrame("Testing");

                try {
                    List<Image> icons = new ArrayList<Image>(5);
                    icons.add(ImageIO.read(getClass().getResource("/resources/FrameIcon16x16.png")));
                    icons.add(ImageIO.read(getClass().getResource("/resources/FrameIcon24x24.png")));
                    icons.add(ImageIO.read(getClass().getResource("/resources/FrameIcon32x32.png")));
                    icons.add(ImageIO.read(getClass().getResource("/resources/FrameIcon64x64.png")));
                    icons.add(ImageIO.read(getClass().getResource("/resources/FrameIcon128x128.png")));
                    frame.setIconImages(icons);
                } catch (IOException exp) {
                    exp.printStackTrace();
                    // Log the problem through your applications logger...
                }

                frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
                frame.setLayout(new BorderLayout());
                frame.add(new JLabel("Frame with icon"));
                frame.pack();
                frame.setLocationRelativeTo(null);
                frame.setVisible(true);
            }
        });
    }

}
于 2013-11-07T00:06:40.937 に答える