1. Нужно реализовать выбор цвета с помощью компонента JComboBox. Для этого нужно реализовать рендерер. Вот как я делал.
| Код | class ComboBoxRenderer extends JLabel implements ListCellRenderer { public ComboBoxRenderer() { setOpaque(true); } public Component getListCellRendererComponent(JList list, Object value, int index, boolean isSelected, boolean callHasFocus) { Color c = (Color) value; setBackground(c); setText(" "); if (isSelected) { setBorder(new LineBorder(Color.BLACK)); } else { setBorder(null); } return this; } }
|
Теперь создаю список и помещаю туда цвета:
| Код | JComboBox cbox = new JComboBox(); cbox.addItem(Color.RED); cbox.addItem(Color.GREEN); cbox.addItem(Color.BLUE); cbox.addItem(Color.GRAY); cbox.addItem(Color.YELLOW); cbox.addItem(Color.BLACK); cbox.setRenderer(new ComboBoxRenderer());
|
Всё вроде бы хорошо и цвета появляются в комбобоксе и их можно выбрать , но когда цвет выбран он не остается в списке а в место него остается обычный серый фон. Как сделать, чтобы цвет оставался при выборе? |