8wDlpd.png
8wDFp9.png
8wDEOx.png
8wDMfH.png
8wDKte.png

如何将图标设置为 JFrame

beautifulsouper 2月前

64 0

我试过这种方法,但是没有改变?ImageIcon icon = new ImageIcon(\'C:\\Documents and Settings\\Desktop\\favicon(1).ico\');frame.setIconImage(icon.getImage());

我试过这个方法,但是没有什么变化?

ImageIcon icon = new ImageIcon("C:\\Documents and Settings\\Desktop\\favicon(1).ico");
frame.setIconImage(icon.getImage());
帖子版权声明 1、本帖标题:如何将图标设置为 JFrame
    本站网址:http://xjnalaquan.com/
2、本网站的资源部分来源于网络,如有侵权,请联系站长进行删除处理。
3、会员发帖仅代表会员个人观点,并不代表本站赞同其观点和对其真实性负责。
4、本站一律禁止以任何方式发布或转载任何违法的相关信息,访客发现请向站长举报
5、站长邮箱:yeweds@126.com 除非注明,本帖由beautifulsouper在本站《user-interface》版块原创发布, 转载请注明出处!
最新回复 (0)
  • 最好使用 .png 文件;.ico 是 Windows 特有的。最好不要使用文件,而是使用类资源(可以打包在应用程序的 jar 中)。

    URL iconURL = getClass().getResource("/some/package/favicon.png");
    // iconURL is null when not found
    ImageIcon icon = new ImageIcon(iconURL);
    frame.setIconImage(icon.getImage());
    

    尽管您甚至可能考虑使用 setIconImages 来设置多种尺寸的图标。

  • 迟来的回应:图标应该与调用 getClass() 的类位于同一个 jar 中,并且路径使用 / 区分大小写。

  • @JFreeman 有一点:.ico 可以包含多个不同分辨率的图像。setIconImages 也可用于多个(单个文件)图像;用于更大的 alt-tab 图标等。我之前没有提到,以免进一步混淆问题。

  • Ouss 2月前 0 只看Ta
    引用 5

    尝试将图像放在 src 文件夹之外的单独文件夹中。然后,使用 ImageIO 加载图像。它应该看起来像这样:

    frame.setIconImage(ImageIO.read(new File("res/icon.png")));
    
  • 最后,我发现设置 jframe 图标的主要问题。这是我的代码。它与其他代码类似,但这里有一些需要注意的地方。

        this.setIconImage(new ImageIcon(getClass().getResource("Icon.png")).getImage());
    

    1)将此代码放入 jframe WindowOpened 事件中

    2)将图像放在创建所有表单和 java 文件的主文件夹中,例如

    src\ myproject\ myFrame.form
    src\ myproject\ myFrame.java
    src\ myproject\ OtherFrame.form
    src\ myproject\ OtherFrame.java
    src\ myproject\ Icon.png
    

    3)最重要的是文件名区分大小写,即 icon.png 不起作用,但 Icon.png 可以。

    这样,即使最终构建了项目后,您的图标仍会存在。

  • falm 2月前 0 只看Ta
    引用 7

    这对我有用。

        frame.setIconImage(Toolkit.getDefaultToolkit().getImage(".\\res\\icon.png"));
    

    对于导出的jar文件,需要配置构建路径包含res文件夹,并使用如下代码。

        URL url = Main.class.getResource("/icon.png");
        frame.setIconImage(Toolkit.getDefaultToolkit().getImage(url));
    
  • 您可以尝试以下方法,

    myFrame.setIconImage(Toolkit.getDefaultToolkit().getImage("Icon.png"));
    
  • 这是我用来设置图标的代码 JFrame

    import javax.imageio.ImageIO;
    import java.io.File;
    import java.io.IOException;
    
      try{ 
        setIconImage(ImageIO.read(new File("res/images/icons/appIcon_Black.png")));
      } 
      catch (IOException e){
        e.printStackTrace();
      }
    
  • 只需在您的代码中复制这几行代码,然后将“imgURL”替换为图像(您想要设置为 jframe 图标)的位置。

    JFrame.setDefaultLookAndFeelDecorated(true);
    
    //Create the frame.
    JFrame frame = new JFrame("A window");
    
    //Set the frame icon to an image loaded from a file.
    frame.setIconImage(new ImageIcon(imgURL).getImage());
    
  • JFrame 的图标 JDialog

    import java.awt.*;
    import java.io.IOException;
    import java.io.InputStream;
    import java.net.URISyntaxException;
    import java.util.Scanner;
    
    public class WindowUtilities
    {
        public static void setIconImage(Window window)
        {
            window.setIconImage(Toolkit.getDefaultToolkit().getImage(WindowUtilities.class.getResource("/Icon.jpg")));
        }
    
        public static String resourceToString(String filePath) throws IOException, URISyntaxException
        {
            InputStream inputStream = WindowUtilities.class.getClassLoader().getResourceAsStream(filePath);
            return toString(inputStream);
        }
    
        // http://.com/a/5445161/3764804
        private static String toString(InputStream inputStream)
        {
            try (Scanner scanner = new Scanner(inputStream, "UTF-8").useDelimiter("\\A"))
            {
                return scanner.hasNext() ? scanner.next() : "";
            }
        }
    }
    

    因此使用它变得非常简单,只需调用

    WindowUtilities.setIconImage(this);
    

    在你的班级内部某处扩展 JFrame .

    例如, Icon.jpg 使用时 myproject\src\main\resources 必须 Maven 位于

  • 我使用 Maven 并拥有该项目的结构,它是通过输入以下命令创建的:

    mvn archetype:generate
    

    所需文件 icon.png 必须放在 src/main/resources 你的 Maven 项目的文件夹中。

    然后您可以在项目中使用下几行:

    ImageIcon img = new ImageIcon(getClass().getClassLoader().getResource("./icon.png"));
    setIconImage(img.getImage());
    
  • 引用 13

    我的项目代码如下:

    private void setIcon() {
           setIconImage(Toolkit.getDefaultToolkit().getImage(getClass().getResource("/slip/images/cage_settings.png")));
    
        }
    
  • ImageIcon img = new ImageIcon(Objects.requireNonNull(getClass().getClassLoader()
        .getResource("konashop/com/icon.png"))); // the URL should be within the src with the classes
    frame.setIconImage(img.getImage());
    
  • 尽量不要发布仅包含代码的答案。看看这个问题的其他答案。它们既包含代码,又包含解释。

  • 引用 16
    frame.setIconImage(new ImageIcon(URL).getImage());
    

    /*frame 是 JFramesetIcon 方法,在框架上设置一个新图标,new ImageIcon 创建类的新实例(这样您就可以从提供的 URL 中获取一个新图标)最后 getImage 返回您需要的图标,这是一种制作图标的“快速”方法,对我来说它很有用,因为它只有一行代码*/

  • 引用 17
    public FaceDetection() {
        initComponents();
        //Adding Frame Icon
        try {
            this.setIconImage(ImageIO.read(new File("WASP.png")));
        } catch (IOException ex) {
            Logger.getLogger(FaceDetection.class.getName()).log(Level.SEVERE, null, ex);
        }
    }'
    

    这对我有用。

返回
作者最近主题: