package magic.ui.dialog.prefs; import java.awt.Color; import java.awt.Component; import java.awt.Dimension; import java.awt.Font; import javax.swing.BorderFactory; import javax.swing.JComboBox; import javax.swing.JLabel; import javax.swing.JList; import javax.swing.ListCellRenderer; import magic.ui.theme.ThemeFactory; @SuppressWarnings("serial") class ThemesComboBox extends JComboBox<String> implements ListCellRenderer<String> { ThemesComboBox() { super(ThemeFactory.getThemeNames()); setMinimumSize(new Dimension(getWidth(), 30)); setRenderer(this); } @Override public Component getListCellRendererComponent(JList<? extends String> list, String value, int index, boolean isSelected, boolean cellHasFocus) { final JLabel lbl = new JLabel(value, JLabel.CENTER); lbl.setOpaque(isSelected); lbl.setFont(lbl.getFont().deriveFont(14f)); lbl.setFont(value.equals(ThemeFactory.getInstance().getCurrentTheme().getName()) ? lbl.getFont().deriveFont(Font.BOLD) : lbl.getFont()); lbl.setBackground(isSelected ? Color.LIGHT_GRAY : lbl.getBackground()); lbl.setBorder(BorderFactory.createEmptyBorder(2, 2, 2, 2)); return lbl; } }