Как изменить шрифт JComboBox - PullRequest
0 голосов
/ 11 июля 2019

Я хочу изменить размер шрифта моего JComboBox. Однако изменяется только не выбранный элемент, например:

https://imgur.com/a/WnnyPA6

Итак, я хочу, чтобы выбранный элемент также был выделен жирным шрифтом.

Я сделал пользовательскую комбинацию со списком:

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

Ответы [ 2 ]

1 голос
/ 11 июля 2019

Вы можете установить шрифт для поля со списком, используя combo.setFont (новый FontUIResource ("Roboto", Font.PLAIN, 12);

1 голос
/ 11 июля 2019

Вы можете просто установить шрифт для поля со списком. Примерно так:

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

Когда мое предложение не помогает в вашем случае, создайте небольшой исполняемый пример, чтобы мы также могли его запустить и отладить.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...