如何使用GraphicsEnvironment.getAllFonts()方法填充包含所有可用字体列表的组合框?
我用过
JComboBox font = new
JComboBox(GraphicsEnvironment.getLocalGraphicsEnvironment().getAllFonts());
但这不起作用。
答案 0 :(得分:2)
关于,
我使用了JComboBox font = new JComboBox(GraphicsEnvironment.getLocalGraphicsEnvironment()。getAllFonts());
这没用。
确实有效。但您必须设置列表单元格渲染器以显示字体名称。例如,
GraphicsEnvironment graphEnviron =
GraphicsEnvironment.getLocalGraphicsEnvironment();
Font[] allFonts = graphEnviron.getAllFonts();
JComboBox<Font> fontBox = new JComboBox<>(allFonts);
fontBox.setRenderer(new DefaultListCellRenderer() {
@Override
public Component getListCellRendererComponent(JList<?> list,
Object value, int index, boolean isSelected, boolean cellHasFocus) {
if (value != null) {
Font font = (Font) value;
value = font.getName();
}
return super.getListCellRendererComponent(list, value, index,
isSelected, cellHasFocus);
}
});
JOptionPane.showMessageDialog(null, new JScrollPane(fontBox));
combo box tutorial中已经很好地描述了这一点。