Java / swing字体调整大小不能跨平台工作

时间:2015-03-24 14:28:53

标签: java swing fonts jcomponent

我有一个使用此代码的swing应用程序,它试图调整组件的字体大小:

Font f = new Font(Font.SERIF,Font.PLAIN,16);
component.setFont(f);

程序加载14点字体,我包含一个组件,允许用户将组件调整为16磅字体,如上所述。当我在计算机上运行它时(我在Debian上编译它),它按预期工作,但我在Mac和Windows计算机上测试它,字体大小调整功能根本不起作用。但是,在所有平台上,字体都是serif。任何想法为什么会发生这种情况?

1 个答案:

答案 0 :(得分:1)

您平台上组件的默认UI委托可能会抢占您的设置。在替代方案中,请考虑以下之一:

  • 在现有字体上使用deriveFont(),如here所示。

    component.getFont().deriveFont(16f)
    
  • 使用可用的sizeVariant,图示为here

size variant

  • 使用自定义UI代理,如herehere

custom UI delegate