Computer >> Hướng Dẫn Máy Tính >  >> Lập Trình >> Java

Cách hiển thị các mục font khác nhau trong JComboBox trong Java

JComboBox là một lớp con của JComponent là sự kết hợp của text field và drop-down list cho người dùng chọn giá trị. JComboBox tạo ra ActionListener, ChangeListener và ItemListener khi tác động. Chúng ta có thể hiển thị các kiểu font khác nhau bên trong JComboBox bằng cách triển khai giao diện ListCellRenderer.

Ví dụ

import java.awt.*;
import javax.swing.*;

public class JComboBoxFontTest extends JFrame {
    private JComboBox fontComboBox;
    private String fontName[];
    private Integer array[];

    public JComboBoxFontTest() {
        setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
        GraphicsEnvironment ge = GraphicsEnvironment.getLocalGraphicsEnvironment();
        fontName = ge.getAvailableFontFamilyNames();
        array = new Integer[fontName.length];
        for (int i = 1; i <= fontName.length; i++) {
            array[i - 1] = i;
        }
        fontComboBox = new JComboBox(array);
        ComboBoxRenderar renderar = new ComboBoxRenderar();
        fontComboBox.setRenderer(renderar);
        setLayout(new FlowLayout());
        add(fontComboBox);
        setSize(400, 300);
        setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
        setLocationRelativeTo(null);
        setVisible(true);
    }

    private class ComboBoxRenderar extends JLabel implements ListCellRenderer {
        @Override
        public Component getListCellRendererComponent(JList list, Object value, int index,
                boolean isSelected, boolean cellHasFocus) {
            int offset = ((Integer) value).intValue() - 1;
            String name = fontName[offset];
            setText(name);
            setFont(new Font(name, Font.PLAIN, 20));
            return this;
        }
    }

    public static void main(String args[]) {
        new JComboBoxFontTest();
    }
}

Kết quả

Cách hiển thị các mục font khác nhau trong JComboBox trong Java