X-Git-Url: https://git.piment-noir.org/?a=blobdiff_plain;f=src%2FEyeView.java;h=99b5d0b680847537199c0747262398175aa553c4;hb=b05df284031fa4c3077ab73952690172b21a394f;hp=f976a4e81187fea41e49e8ed4086e00bc9a01f0e;hpb=d75d0a00d45e0f62b494a7282a5902e63df32b1a;p=Persons_Comparator.git diff --git a/src/EyeView.java b/src/EyeView.java index f976a4e..99b5d0b 100644 --- a/src/EyeView.java +++ b/src/EyeView.java @@ -1,9 +1,11 @@ import javax.swing.*; +import java.awt.*; +import java.util.Arrays; -public class EyeView extends JComponent { +public class EyeView extends JPanel { private Eye eyeObj; private JLabel label; - private JComboBox colorsList; + private JList colorsList; /** * @param eyeObj @@ -12,9 +14,11 @@ public class EyeView extends JComponent { setEyeObj(eyeObj); this.label = new JLabel(); this.label.setText("Eyes color"); - this.colorsList = new JComboBox<>(this.getEyeObj().getColorsList()); - if (this.getEyeObj().getStrColor() != null) - this.colorsList.setSelectedItem(this.getEyeObj().getStrColor()); + this.colorsList = new JList<>(this.getEyeObj().getColorsList()); + this.colorsList.setSelectionMode(ListSelectionModel.SINGLE_SELECTION); + this.colorsList.setLayoutOrientation(JList.VERTICAL); + this.colorsList.setSelectedIndex(Arrays.asList(this.getEyeObj().getColorsList()).indexOf(this.getEyeObj().getStrColor())); + this.colorsList.setCellRenderer(new EyeCellRenderer()); add(label); add(colorsList); } @@ -32,4 +36,21 @@ public class EyeView extends JComponent { public void setEyeObj(Eye eyeObj) { this.eyeObj = eyeObj; } + + public JList getColorsList() { + return colorsList; + } + + private static class EyeCellRenderer extends DefaultListCellRenderer { + public Component getListCellRendererComponent(JList list, Object value, int index, boolean isSelected, boolean cellHasFocus) { + Component c = super.getListCellRendererComponent(list, value, index, isSelected, cellHasFocus); + Eye currentEye = new Eye((String) list.getModel().getElementAt(index)); + c.setBackground(currentEye.getColor()); + c.setForeground(Color.WHITE); + if (isSelected) { + setBackground(getBackground().darker()); + } + return c; + } + } }