Java tutorial
import java.awt.BorderLayout; import java.awt.Color; import java.awt.Component; import javax.swing.JComboBox; import javax.swing.JFrame; import javax.swing.JList; import javax.swing.JTextField; import javax.swing.border.Border; import javax.swing.border.LineBorder; import javax.swing.plaf.basic.BasicComboBoxRenderer; public class Main extends JFrame { public Main() { Object[] items = { Color.red, Color.green, Color.blue }; JComboBox comboBox = new JComboBox(items); comboBox.setRenderer(new ColorRenderer(comboBox)); getContentPane().add(comboBox, BorderLayout.NORTH); add(new JTextField(), BorderLayout.SOUTH); } public static void main(String[] args) { Main frame = new Main(); frame.setDefaultCloseOperation(EXIT_ON_CLOSE); frame.pack(); frame.setLocationRelativeTo(null); frame.setVisible(true); } } class ColorRenderer extends BasicComboBoxRenderer { JComboBox comboBox; Border border; public ColorRenderer(JComboBox comboBox) { this.comboBox = comboBox; border = new LineBorder(Color.WHITE); } public Component getListCellRendererComponent(JList list, Object value, int index, boolean isSelected, boolean cellHasFocus) { super.getListCellRendererComponent(list, value, index, isSelected, cellHasFocus); setText(value.toString()); if (!isSelected) setBackground((Color) value); return this; } }