当前位置: 首页 > 知识库问答 >
问题:

Swing中使用的框架图标的大小

蒋茂
2023-03-14

我们可以使用一个列表来初始化窗口图标,使用Window.set图标(列表

这段代码将64个不同大小的图像(从16x16增加2)转换为列表的图标。

import java.awt.*;
import java.awt.image.BufferedImage;
import java.util.ArrayList;
import java.util.Vector;
import javax.swing.*;
import javax.swing.border.EmptyBorder;

public class FrameIconList {

    public static BufferedImage getImage(int size, Color color) {
        BufferedImage i = new BufferedImage(
                size, size, BufferedImage.TYPE_INT_RGB);

        Graphics2D g = i.createGraphics();

        g.setColor(color);
        g.fillRect(0, 0, size, size);
        g.setColor(Color.BLACK);
        int off = (size>17 ? 3 : 1);
        if (off>1) g.drawRect(0, 0, size-1, size-1);
        g.drawString("" + size, off, size-off);

        g.dispose();

        return i;
    }

    public static void main(String[] args) {
        final Color[] colors = {
            Color.GREEN,
            Color.RED,
            Color.YELLOW,
            Color.WHITE,
            Color.CYAN,
            Color.MAGENTA,
            Color.PINK,
            Color.ORANGE
        };

        int s = 64;
        final int[] sizes = new int[s];
        
        for (int ii=0; ii<sizes.length; ii++) {
            sizes[ii] = 16+(ii*2);
        }

        Runnable r = new Runnable() {

            @Override
            public void run() {
                // the GUI as seen by the user (without frame)
                JPanel gui = new JPanel(new BorderLayout());
                gui.setBorder(new EmptyBorder(2, 3, 2, 3));
                gui.setBackground(Color.WHITE);
                
                ArrayList<BufferedImage> images = new ArrayList<BufferedImage>();
                Vector<ImageIcon> icons = new Vector<ImageIcon>();
                for (int ii=0; ii< sizes.length; ii++) {
                    BufferedImage bi = getImage(
                            sizes[ii], 
                            colors[ii%colors.length]);
                    images.add(bi);
                    ImageIcon imi = new ImageIcon(bi);
                    icons.add(imi);
                }
                JList list = new JList(icons);
                list.setVisibleRowCount(6);
                gui.add(new JScrollPane(list));

                JFrame f = new JFrame("Icon size usage");
                f.setIconImages(images);
                f.add(gui);
                // Ensures JVM closes after frame(s) closed and
                // all non-daemon threads are finished
                f.setDefaultCloseOperation(JFrame.DISPOSE_ON_CLOSE);
                // See http://stackoverflow.com/a/7143398/418556 for demo.
                f.setLocationByPlatform(true);

                // ensures the frame is the minimum size it needs to be
                // in order display the components within it
                f.pack();
                // should be done last, to avoid flickering, moving,
                // resizing artifacts.
                f.setVisible(true);
            }
        };
        // Swing GUIs should be created and updated on the EDT
        // http://docs.oracle.com/javase/tutorial/uiswing/concurrency/initial.html
        SwingUtilities.invokeLater(r);
    }
}

共有3个答案

闽康安
2023-03-14

在Mac OS X 10.9(Mavericks)中运行时,似乎没有框架或对接图标:

此外,活动监视器中没有图标:

庞彬
2023-03-14

@mKorbel嗯。。没有意识到会有不同。嗯,用户/操作系统首选项规则高于程序员的期望!;)

>

  • 答案只是关于Win8(ent,64b….)/WinXP(未提及,但设置非常相似)

    还有另一个选项,请参阅错误或功能:Swing默认gui字体对于@kleopatra的Win6不正确,等等

    可以在win8的桌面上设置64x64图标

    例如,我的设置(不是高级图形个性化,尽管事实上我是Win2008/12管理员,blablabla-"离开了反向配色的保证主义,现在只有黑色

    • 生成

    • 标准设置(仅使用未标记的小任务栏按钮)

    • 你的窗口在我的屏幕上

  • 公西星文
    2023-03-14

    注:@bobbel报告Windows 10使用相同的大小。

     类似资料:
    • 基本上,我如何生成这个?我很确定这是的工作,但是我无法理解如何正确地调整操作窗格与菜单栏的大小。红色的 请注意,第二条红线应该正好是框架下半部高度的三分之一。 这是我的最新尝试,通过尝试使用3x6网格(c是GridBagConstraint对象,字符肖像包含所有肖像,当前屏幕是“动作窗格”): 取而代之的是,这将在象限的底部三分之一产生每个肖像,并且操作窗格占据中心列的5/6,而不是我想要的4/6

    • 本文向大家介绍Java的Struts框架中append标签与generator标签的使用,包括了Java的Struts框架中append标签与generator标签的使用的使用技巧和注意事项,需要的朋友参考一下 append 标签: 这些append标签需要两个或两个以上的列表作为参数,并追加它们放在一起,如下图所示: 如果有两个列表A和B的值A1,A2和B1,B2。合并列表,会给你的A1,A2,

    • 问题内容: 测试UI很困难。您认为Swing的最佳单元测试框架是什么? 问题答案: 我认为目前最好的是FEST。

    • 本文向大家介绍Python的Django框架中if标签的相关使用,包括了Python的Django框架中if标签的相关使用的使用技巧和注意事项,需要的朋友参考一下 {% if %} 标签检查(evaluate)一个变量,如果这个变量为真(即,变量存在,非空,不是布尔值假),系统会显示在 {% if %} 和 {% endif %} 之间的任何内容,例如: {% else %} 标签是可选的: Py

    • 问题内容: 所以我有一个带有复选框的JTable。我想让复选框 在“选中”时包含一个图像,而在“未选中”时包含另一个图像 (即,显示图像而不是选中或未选中的框)。是否 有办法做到这一点?我试着用TableCellRenderer愚弄它 返回带有ImageIcon的JLabel,但是它并不是非常有效。 更具体地说,当复选框处于选中状态或未选中状态时,右侧的图像 就会出现,但是当用户更改复选框状态(鼠

    • 虽然这可能看起来并不明智,但我建议你使用 style-loader 将第三方 CSS 库导入 webpack,其实这一点我们已经为你做了。 使用案例 假设你要为你的程序使用 bootstrap、bulma 或者 materialize。你可以仍旧像通常情况下一样,从 npm 安装你的库,而不是将资源附加到 index.ejs 上,我们将在我们的 JavaScript 中导入 CSS,具体在 src