有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

java根据给定值调整框架中所有组件的大小

我试图在我的应用程序中增加框架中所有组件的大小和字体。我通过下面的代码找到了一些用于字体的代码:

private static void setUIFont(javax.swing.plaf.FontUIResource f)
{
    Enumeration<Object> keys = UIManager.getDefaults().keys();
    while (keys.hasMoreElements())
    {
        Object key = keys.nextElement();
        Object value = UIManager.get(key);
        if (value instanceof javax.swing.plaf.FontUIResource)
        {

            UIManager.put(key, f);
        }
    }
}

然后通过以下方式呼叫:

setUIFont (new javax.swing.plaf.FontUIResource(new Font("Tahoma",Font.PLAIN, 14)));

由于它有效,我想我将尝试修改它以使用DimensionUIResource,如下所示:

private static void setUISize(javax.swing.plaf.DimensionUIResource f)
{
    Enumeration<Object> keys = UIManager.getDefaults().keys();
    while (keys.hasMoreElements())
    {
        Object key = keys.nextElement();
        Object value = UIManager.get(key);
        if (value instanceof javax.swing.plaf.DimensionUIResource)
        {

            UIManager.put(key, f);
        }
    }
}

并通过以下方式调用:

setUISize (new javax.swing.plaf.DimensionUIResource(200, 200));

不幸的是,它不起作用。你知道我在这段代码上做错了什么吗?还有别的办法吗


共 (1) 个答案

  1. # 1 楼答案

    只需打印键和值,然后查看DimensionUIResource中包含的内容

    只有以下组件将重新调整大小

    OptionPane.minimumSize       : javax.swing.plaf.DimensionUIResource[width=262,height=90]
    ProgressBar.verticalSize     : javax.swing.plaf.DimensionUIResource[width=12,height=146]
    ScrollBar.minimumThumbSize   : javax.swing.plaf.DimensionUIResource[width=8,height=8]
    ScrollBar.maximumThumbSize   : javax.swing.plaf.DimensionUIResource[width=4096,height=4096]
    ToolBar.separatorSize        : javax.swing.plaf.DimensionUIResource[width=10,height=10]
    ProgressBar.horizontalSize   : javax.swing.plaf.DimensionUIResource[width=146,height=12]th=146,height=12]