java获取系统字体大小_Java自动调整到Windows 7的字体大小调整

本文介绍了如何使Java Swing应用根据Windows 7的字体大小调整设置进行适配。通过调用UIManager.setLookAndFeel(UIManager.getSystemLookAndFeelClassName())可以获取系统外观,并在144dpi(150%)的DPI设置下展示应用的屏幕截图。代码示例展示了如何创建一个简单的Swing界面,并讨论了如何使用可扩展的布局如FormLayout来应对字体缩放带来的影响,确保界面在不同DPI设置下保持一致的视觉效果。
摘要由CSDN通过智能技术生成

这有两个部分:

>获取您的组件,字体等

规模化

>获取您的布局

规模

对于Swing来说,第一部分很容易 – 一切都从一个电话开始.

UIManager.setLookAndFeel(UIManager.getSystemLookAndFeelClassName());

在Windows上,这将使其符合您的小/大字体(DPI)设置.

这里有一个快速测试应用程序的两个屏幕截图,它们在Windows 7 @ 96dpi(普通字体)和@ 144dpi(150%)中显示在我的机器上的外观,

首先默认的字体大小示例:

现在更大(150%)字体大小设置:

运行之间没有代码更改,只能注销&回到新的DPI设置.我设定了一个固定的框架大小,以证明我的容器没有缩放大小,这导致我的标签被推下来以适应.

这是我的源代码 – cut&粘贴并自行运行:

import java.awt.FlowLayout;

import javax.swing.JButton;

import javax.swing.JFrame;

import javax.swing.JLabel;

import javax.swing.JPanel;

import javax.swing.SwingUtilities;

import javax.swing.UIManager;

public class SwingFontTest

{

private static void createGUI()

{

JButton button = new JButton("my button with Some Text");

JLabel label = new JLabel("and a label");

JPanel panel = new JPanel(new FlowLayout());

panel.add(button);

panel.add(label);

JFrame frame = new JFrame("Title!");

frame.setContentPane(panel);

frame.setSize(300,125);

frame.setDefaultCloSEOperation(JFrame.EXIT_ON_CLOSE);

frame.setVisible(true);

}

public static void main(String[] args)

{

try

{

UIManager.setLookAndFeel(UIManager.getSystemLookAndFeelClassName());

}

catch (Exception e)

{

e.printStackTrace();

}

SwingUtilities.invokeLater(new Runnable() {

@Override

public void run()

{

createGUI();

}

});

}

}

外观&感觉提供默认的大小,但是由GUI作者在布局中使用可扩展单元.它确实需要努力(可扩展的布局也是网页上的一个痛苦),但它是绝对可以实现的.

我建议使用像FormLayout这样的布局,让您可以在对话框单元(DLU)中定义布局,因为这些使用DPI进行缩放.这将使您能够使您的容器尺寸缩小,并应有助于限制由于尺寸调整到标签移动到下一行的行为.如果使用对话单元确定框架的大小,则可以使其看起来相同,只有较大的.

现在已经很晚了 – 现在就这样了.

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值