我想更改我的JComboBox的字体大小。 但是,只有未选中的项目会发生变化,例如
所以我希望所选项目也加粗。
我像这样做了一个自定义组合框类:
public class CustomComboBox extends JLabel implements ListCellRenderer {
public Component getListCellRendererComponent(
JList list,
Object value,
int index,
boolean isSelected,
boolean cellHasFocus) {
JLabel label = new JLabel(){
public Dimension getPreferredSize(){
return new Dimension(200, 80);
}
};
label.setText(String.valueOf(value));
label.setFont(new Font("Serif", Font.BOLD, 30));
return label;
}
}
答案 0 :(得分:1)
您可以简单地为组合框设置字体。像这样:
import java.awt.Dimension;
import java.awt.Font;
import javax.swing.JComboBox;
import javax.swing.JFrame;
import javax.swing.SwingUtilities;
import javax.swing.WindowConstants;
import javax.swing.plaf.basic.BasicComboBoxRenderer;
/**
* <code>ComboTest</code>.
*/
public class ComboTest {
public static void main(String[] args) {
SwingUtilities.invokeLater(new ComboTest()::startUp);
}
private void startUp() {
JComboBox<String> combo = new JComboBox<>(new String[] {"A", "B", "C"});
combo.setFont(new Font("Serif", Font.BOLD, 30));
combo.setRenderer(new ComboRenderer());
JFrame frm = new JFrame("Combo test");
frm.add(combo);
frm.pack();
frm.setDefaultCloseOperation(WindowConstants.DISPOSE_ON_CLOSE);
frm.setLocationRelativeTo(null);
frm.setVisible(true);
}
private static class ComboRenderer extends BasicComboBoxRenderer {
@Override
public Dimension getPreferredSize() {
return new Dimension(200, 80);
}
}
}
如果我的建议对您的情况没有帮助,请创建一个小的可运行示例,以便我们也可以启动和调试它。
答案 1 :(得分:1)
您可以使用以下方法为组合框设置字体 combo.setFont(new FontUIResource(“ Roboto”,Font.PLAIN,12);