Getting fonts, sizes, bold,…etc

匿名 (未验证) 提交于 2019-12-03 02:06:01

问题:

I'm having trouble finding stuff on accessing Windows fonts or predefined fonts, and sizes. So for my java program I have a JComboBox with fonts, sizes, and colors. The problem is that I need to pre-Enter the fonts, sizes and colors. How would I be able to get the predefined fonts, colors, and sizes? So far this is what I have for this font but its not in the correct way.

               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);

回答1:

GraphicsEnvironment ge = GraphicsEnvironment.getLocalGraphicsEnvironment(); String[] fonts = ge.getAvailableFontFamilyNames();

The sizes and styles can be set at run-time.

E.G.

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

The JDoc for GraphicsEnvironment.getAvailableFontFamilyNames() state in part..

Returns an array containing the names of all font families in this GraphicsEnvironment localized for the default locale, as returned by Locale.getDefault()..

See also:

getAllFonts()..



转载请标明出处:Getting fonts, sizes, bold,…etc
标签
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!