Computer >> บทช่วยสอนคอมพิวเตอร์ >  >> การเขียนโปรแกรม >> Java

วิธีแสดง Font ต่างๆ ภายใน JComboBox ใน Java

JComboBox เป็น subclass ของ JComponent เป็นการรวมของ text field และ drop-down list ที่ user เลือกค่าได้ JComboBox สร้าง ActionListener, ChangeListener และ ItemListener interfaces เมื่อ user กระทำบน combo box เราสามารถแสดง font styles ต่างๆ ภายใน JComboBox ได้โดย implement interface ListCellRenderer

ตัวอย่าง

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

Output

วิธีแสดง Font ต่างๆ ภายใน JComboBox ใน Java