我正在NetBeans 13中构建Swing GUI,显示的默认字体是Segoe UI 12 Plain:
当然,我可以选择省略号并更改字体,但必须为用户界面中的每个组件都这样做是令人厌倦的。
这个字体作为默认字体存储在哪里?它一定在NetBeans中的某个地方,因为每次我向面板添加组件时它都会出现。我真的需要这样做,所以每次我运行NetBeans并向GUI添加Swing组件时,它都默认为其他字体(如果有区别的话,它将是Calibri 14点)。
实际上选择省略号会弹出一个对话框来修改字体...
正如您所看到的,有一个选项“从默认字体派生字体”,所以有一个默认字体存储在某处,但我不能找到它在任何地方在工具〉选项,也不是明显的从谷歌搜索。
这太令人沮丧了!我只想让我创建的用户界面使用Calibri 14字体,而不是Segoe字体,而不必在设计器中单独修改每个出现的地方。
我将这个特定的应用程序和UI从C#移植到Visual Studio中,以使它更容易在一台备用机器上运行,我可以在上面安装Linux,而不仅仅是Windows,但正是这种令人沮丧的小问题让我重新考虑。
基于代码的解决方案是不可接受的,因为我开发的每个应用程序都需要包含这种解决方案。
任何帮助都将不胜感激,谢谢。
1条答案
按热度按时间nc1teljy1#
Netbeans GUI生成器没有自己的UI设置。“GUI生成器属性”窗口仅显示当前外观的默认值(即,在未指定字体的情况下调用
new JLabel()
时Java使用的字体值)。可以在initComponents()
方法中验证生成的代码:则仅当您在“属性”窗口中更改字体时才会生成JLabel.setFont(xxx)
语句。请记住,默认字体会根据外观和感觉而变化(您的程序在Windows和Mac上看起来不一样)。这就是为什么通常情况下,为了最大限度地提高可移植性,**如果您可以依赖默认字体,**会更好。
derive font功能允许您依赖默认字体,但需要进行一些修改(粗体、斜体、更大、更小)。
那么如何改变所有用户界面的默认字体呢?
您需要使用
UIManager
和UIDefaults
以编程方式执行此操作。例如,下面的行更改了所有JLabel示例的默认字体。查看此帖子以获取可用UI属性的列表:List of Java Swing UI properties?