获取字体,大小,粗体,等等
我在查找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()
..