【问题标题】:Java/swing font resize not working across platformsJava/swing 字体大小调整不能跨平台工作
【发布时间】:2015-05-27 22:01:11
【问题描述】:

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

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

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

【问题讨论】:

  • 问题已经问过了:也许this可以帮助你。
  • 不是真的;那里的人要求在所有平台上使用完全相同的字体。平台上的任何衬线字体对我来说都很好,但我只想要一种调整字体大小的方法(即应用程序加载 14 点字体。当我在 debian 上使用允许用户选择的组件将字体大小设置为 16 时字体,字体会调整大小,但是当我在 Windows 上将其设置为 16 时,没有任何反应)

标签: java swing fonts jcomponent


【解决方案1】:

您平台上组件的默认 UI 委托可能会抢占您的设置。或者,考虑以下其中一项:

  • 在现有字体上使用deriveFont(),图示为here

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

  • 使用自定义 UI 委托,图示为 herehere

【讨论】:

    猜你喜欢
    • 2012-07-23
    • 1970-01-01
    • 1970-01-01
    • 2012-11-03
    • 1970-01-01
    • 1970-01-01
    • 2014-03-06
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多