为所有组件 Java 设置相同的字体

2022-01-24 00:00:00 fonts java swing jpanel jframe

我想为 JPanel 中的所有组件设置特定字体,但我更喜欢这个问题更笼统,不限于 JPanel.如何将字体设置为容器(JFrame 或 JPanel)中的组件列表?

I want to set a specific font for all component in a JPanel but I prefer that the question is still more general and not limited to the JPanel. How can I set the font to a list of component in a container (JFrame or JPanel)?

推荐答案

这里有一个简单的方法,可以让你为任意Container下的整个组件树指定Font(或者只是一个简单的Component,没关系):

Here is a simple method that allows you to specify Font to the whole components tree under any Container (or just a simple Component, doesn't matter):

public static void changeFont ( Component component, Font font )
{
    component.setFont ( font );
    if ( component instanceof Container )
    {
        for ( Component child : ( ( Container ) component ).getComponents () )
        {
            changeFont ( child, font );
        }
    }
}

只需将您的面板和特定字体传递到此方法中,您还将重构所有子元素.

Simply pass your panel and specific Font into this method and you will get all childs refactored aswell.

相关文章