1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38
|
// Peuplement de la liste.
for (Dice dice : Dice.values()) {
combo1.addItem(dice);
}
combo1.addItemListener(new ItemListener () {
/**
* {@inheritDoc}
*/
@Override
public void itemStateChanged(ItemEvent e) {
switch (e.getStateChange()) {
case ItemEvent.SELECTED:
Dice dice = (Dice)combo1.getSelectedItem();
System.out.println("Rolling a "+dice.getFaceCount()+" faces dice: "+dice.roll());
break;
default:
}
}
});
// Normalent on peut directement mettre du custom code sur cette propriete dans NetBeans,
// Mais comme l'editeur deraille parfois, je te conseille de creer une classe nommee (DiceListCellRenderer) et de faire juste
// combo1.setCellRenderer(new DiceListCellRenderer()); dans l'editeur de custom code.
// Meme chose pour le listener quoi que l'edition d'evenement fonctionne un peu mieux je trouve.
combo1.setCellRenderer(new DefaultListCellRenderer() {
/**
* {@inheritDoc}
*/
@Override
public Component getListCellRendererComponent(JList list, Object value, int index, boolean isSelected, boolean cellHasFocus) {
super.getListCellRendererComponent(list, value, index, isSelected, cellHasFocus);
Dice dice = (Dice)value;
String text = "Dé "+dice.getFaceCount()+" faces";
setText(text);
// On pourrait mettre une icone appropriee aussi, un tooltip, etc.
return this;
}
} |
Partager