获取字体、大小、粗体等
Posted
技术标签:
【中文标题】获取字体、大小、粗体等【英文标题】:Getting fonts, sizes, bold,...etc 【发布时间】:2011-10-21 08:35:02 【问题描述】:我无法找到有关访问 Windows 字体或预定义字体和大小的信息。因此,对于我的 java 程序,我有一个带有字体、大小和颜色的 JComboBox
。问题是我需要预先输入字体、大小和颜色。我如何能够获得预定义的字体、颜色和大小?到目前为止,这就是我所拥有的这种字体,但它的方式不正确。
if (font.equals("Arial"))
if (size.equals("8"))
setSize = 8;
else if (size.equals("10"))
setSize = 10;
else if (size.equals("12"))
setSize = 12;
if (color.equals("Black"))
setColor = Color.BLACK;
else if (color.equals("Blue"))
setColor = Color.BLUE;
else if (color.equals("Red"))
setColor = Color.red;
Font font = new Font("Arial", setAttribute, setSize);
Writer.setFont(font);
Writer.setForeground(setColor);
【问题讨论】:
“我无法找到有关访问 Windows 字体或预定义字体的内容” 对于 Mac,您将很难找到它。和 *nix 框。如果只针对 Windows,为什么要使用 Java 编写代码? 这只是一个有人告诉我要做的练习,而不是一个完整的应用程序,只是想学习一些东西 【参考方案1】:GraphicsEnvironment ge = GraphicsEnvironment.getLocalGraphicsEnvironment();
String[] fonts = ge.getAvailableFontFamilyNames();
大小和样式可以在运行时设置。
例如
import java.awt.*;
import javax.swing.*;
public class ShowFonts
public static void main(String[] args)
SwingUtilities.invokeLater(() ->
GraphicsEnvironment ge = GraphicsEnvironment.getLocalGraphicsEnvironment();
String[] fonts = ge.getAvailableFontFamilyNames();
JComboBox fontChooser = new JComboBox(fonts);
fontChooser.setRenderer(new FontCellRenderer());
JOptionPane.showMessageDialog(null, fontChooser);
);
class FontCellRenderer extends DefaultListCellRenderer
public Component getListCellRendererComponent(
JList list,
Object value,
int index,
boolean isSelected,
boolean cellHasFocus)
JLabel label = (JLabel)super.getListCellRendererComponent(
list,value,index,isSelected,cellHasFocus);
Font font = new Font(value.toString(), Font.PLAIN, 20);
label.setFont(font);
return label;
JavaDoc
GraphicsEnvironment.getAvailableFontFamilyNames()
部分状态的 JDoc..
返回一个数组,其中包含此
GraphicsEnvironment
中所有字体系列的名称,该数组已本地化为默认语言环境,由Locale.getDefault()
.. 返回。
另见:
getAllFonts()
..
【讨论】:
哇,这正是我想要的。那么 GraphicsEnvironment 会获取您的系统正在运行的字体类型吗?以上是关于获取字体、大小、粗体等的主要内容,如果未能解决你的问题,请参考以下文章
对部分 NSAttributedString 应用粗体,同时保留字体大小和面
更改 matplotlib 中子图的“xticks”和“Yticks”的字体大小和粗体 [重复]