【问题标题】:How to add an image to a JFrame title bar?如何将图像添加到 JFrame 标题栏?
【发布时间】:2011-09-18 05:31:35
【问题描述】:

我想向javax.swing.JFrame 标题栏添加一张图片(小图标)。

我该怎么做?

【问题讨论】:

  • JPanel 没有标题栏...

标签: java image swing icons jframe


【解决方案1】:

由于JPanel 没有标题栏,我假设您指的是JFrame。话虽如此,请使用setIconImage(...)


这里是一个使用setIconImages()的例子。

import java.awt.Image;
import javax.swing.*;
import javax.imageio.ImageIO;

import java.net.URL;
import java.util.*;

class FrameIcons {

    public static void main(String[] args) throws Exception {
        URL url16 = new URL("http://i.stack.imgur.com/m0KKu.png");
        URL url32 = new URL("http://i.stack.imgur.com/LVVMb.png");

        final List<Image> icons = new ArrayList<Image>();
        icons.add(ImageIO.read(url16));
        icons.add(ImageIO.read(url32));

        SwingUtilities.invokeLater( new Runnable() {
            public void run() {
                JFrame f = new JFrame("Frame Icons");
                f.setIconImages(icons);
                f.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
                f.setLocationByPlatform(true);
                f.setSize(200,100);
                f.setVisible(true);
            }
        });
    }
}

使用 16x16 图标的框架

使用 32x32 图标的应用程序选项卡

【讨论】:

  • ..另见相关方法setIconImages()(注意复数形式)。如果您设置大小为 16x16 和 32x32 的图像,第一个将用作框架图标(在支持它的系统上 - 我最近注意到 Mac 不支持),第二个在不同应用程序之间“alt tabbing”时显示。我不知道除了 Windows 之外还有哪些平台会显示一个图标来表示应用程序。在它们之间切换时。
  • @mre:我忍不住用从另一个线程借来的关于这些部分的几张图片添加了一个示例。我认为最好将其添加为您的问题的编辑,因为它实际上是相同的答案。如果您愿意,请将其编辑出来,我会将其添加为单独的答案。
  • @Andrew,这太完美了。我很欣赏你提供的详细阐述......它肯定丰富了这个答案的价值。向你致敬! :)
  • @mre:(我相信是)“正确问题的答案”的一个很好的补充。 ;)
  • @mre:感谢您提供结构良好的细节。在您的帮助下,我发现适合我的是内框。再次感谢您的出色回答...
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2013-03-29
  • 1970-01-01
  • 2013-08-04
  • 2019-09-03
  • 1970-01-01
相关资源
最近更新 更多