首页javajcomboboxJava Swing - 如何使用DefaultListCellRenderer设置JComboBox的文本大小

Java Swing - 如何使用DefaultListCellRenderer设置JComboBox的文本大小

我们想知道如何使用DefaultListCellRenderer设置JComboBox的文本大小。
import java.awt.Component;
import java.awt.Font;
import java.awt.GraphicsEnvironment;

import javax.swing.DefaultListCellRenderer;
import javax.swing.JComboBox;
import javax.swing.JLabel;
import javax.swing.JList;
import javax.swing.JOptionPane;

public class Main {

  public static void main(String[] args) {
    GraphicsEnvironment ge = GraphicsEnvironment.getLocalGraphicsEnvironment();
    String[] fonts = ge.getAvailableFontFamilyNames();
    JComboBox<String> 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;
  }
}