获取字体,大小,粗体,等等

我在查找Windows字体或预定义字体和大小时遇到​​问题。 所以对于我的Java程序,我有一个JComboBox的字体,大小和颜色。 问题是我需要预先input字体,大小和颜色。 我将如何能够获得预定义的字体,颜色和大小? 到目前为止,这是我对这种字体的,但它不正确的方式。

  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); 
 GraphicsEnvironment ge = GraphicsEnvironment.getLocalGraphicsEnvironment(); String[] fonts = ge.getAvailableFontFamilyNames(); 

大小和样式可以在运行时设置。

例如

字体选择器

 import java.awt.*; import javax.swing.*; class ShowFonts { public static void main(String[] args) { SwingUtilities.invokeLater( new Runnable() { public void run() { 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((String)value, Font.PLAIN, 20); label.setFont(font); return label; } } 

的JavaDoc

GraphicsEnvironment.getAvailableFontFamilyNames()的JDoc部分状态

返回一个数组,其中包含Locale.getDefault()所返回的本地化为默认语言环境的GraphicsEnvironment的所有字体系列的名称。

也可以看看:

getAllFonts() ..