按给定值调整帧中的所有组件的大小

时间:2014-05-08 20:19:09

标签: java swing size frame uimanager

我正在尝试增加应用程序中框架中所有组件的大小和字体。我找到了一些代码,通过以下代码对字体执行此操作:

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 个答案:

答案 0 :(得分:2)

只需打印键和值,然后查看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]
相关问题