Получение шрифтов, размеров, жирного шрифта и т. Д. - PullRequest
10 голосов
/ 06 августа 2011

У меня проблемы с поиском информации о доступе к шрифтам 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);

1 Ответ

18 голосов
/ 06 августа 2011
GraphicsEnvironment ge = GraphicsEnvironment.getLocalGraphicsEnvironment();
String[] fonts = ge.getAvailableFontFamilyNames();

Размеры и стили могут быть установлены во время выполнения.

Е.Г.

Font Chooser

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

JDoc для состояния GraphicsEnvironment.getAvailableFontFamilyNames() в части ..

Возвращает массив, содержащий имена всех семейств шрифтов в этом GraphicsEnvironment, локализованном для локали по умолчанию, как возвращено Locale.getDefault() ..

Смотри также:

getAllFonts() ..

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...