我想设置不同字体粗细我的 JFrame 对话框上的组件。我该怎么做呢?
在下面的Java语句中
setFont(new Font("Dialog", Font.BOLD, 12));
当我使用 Font.BOLD 时,它太粗体,当我使用 Font.Plain 时,它太简单。我想要介于两者之间的东西。
韦勒是部分正确的。您可以使用文本属性 http://docs.oracle.com/javase/8/docs/api/java/awt/font/TextAttribute.html获取字体:
Map<TextAttribute, Object> attributes = new HashMap<>();
attributes.put(TextAttribute.FAMILY, Font.DIALOG);
attributes.put(TextAttribute.WEIGHT, TextAttribute.WEIGHT_SEMIBOLD);
attributes.put(TextAttribute.SIZE, 12);
label.setFont(Font.getFont(attributes));
更好的方法是通过外观从 Swing 组件上安装的字体派生字体:
Font font = label.getFont();
font = font.deriveFont(
Collections.singletonMap(
TextAttribute.WEIGHT, TextAttribute.WEIGHT_SEMIBOLD));
label.setFont(font);
这将保留字体的系列和大小,用户可能出于可读性原因在桌面首选项中设置了这些字体和大小。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)