如何在Netbeans 13中更改“属性”面板中显示的默认GUI设计器字体?

ztyzrc3y  于 2022-11-10  发布在  其他
关注(0)|答案(1)|浏览(158)

我正在NetBeans 13中构建Swing GUI,显示的默认字体是Segoe UI 12 Plain

当然,我可以选择省略号并更改字体,但必须为用户界面中的每个组件都这样做是令人厌倦的。
这个字体作为默认字体存储在哪里?它一定在NetBeans中的某个地方,因为每次我向面板添加组件时它都会出现。我真的需要这样做,所以每次我运行NetBeans并向GUI添加Swing组件时,它都默认为其他字体(如果有区别的话,它将是Calibri 14点)。
实际上选择省略号会弹出一个对话框来修改字体...

正如您所看到的,有一个选项“从默认字体派生字体”,所以有一个默认字体存储在某处,但我不能找到它在任何地方在工具〉选项,也不是明显的从谷歌搜索。
这太令人沮丧了!我只想让我创建的用户界面使用Calibri 14字体,而不是Segoe字体,而不必在设计器中单独修改每个出现的地方。
我将这个特定的应用程序和UI从C#移植到Visual Studio中,以使它更容易在一台备用机器上运行,我可以在上面安装Linux,而不仅仅是Windows,但正是这种令人沮丧的小问题让我重新考虑。
基于代码的解决方案是不可接受的,因为我开发的每个应用程序都需要包含这种解决方案。
任何帮助都将不胜感激,谢谢。

nc1teljy

nc1teljy1#

Netbeans GUI生成器没有自己的UI设置。“GUI生成器属性”窗口仅显示当前外观的默认值(即,在未指定字体的情况下调用new JLabel()时Java使用的字体值)。可以在initComponents()方法中验证生成的代码:则仅当您在“属性”窗口中更改字体时才会生成JLabel.setFont(xxx)语句。
请记住,默认字体会根据外观和感觉而变化(您的程序在Windows和Mac上看起来不一样)。这就是为什么通常情况下,为了最大限度地提高可移植性,**如果您可以依赖默认字体,**会更好。

derive font功能允许您依赖默认字体,但需要进行一些修改(粗体、斜体、更大、更小)。

那么如何改变所有用户界面的默认字体呢?
您需要使用UIManagerUIDefaults以编程方式执行此操作。例如,下面的行更改了所有JLabel示例的默认字体。

UIManager.getLookAndFeelDefaults().put("Label.font", new Font("Arial", Font.PLAIN, 30));
JLabel myLabel = new JLabel(); // Will use Arial Plain 30

查看此帖子以获取可用UI属性的列表:List of Java Swing UI properties?

相关问题