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 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137
| import java.awt.Component;
import java.awt.Container;
import java.awt.GridBagConstraints;
import java.awt.GridBagLayout;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import javax.swing.DefaultComboBoxModel;
import javax.swing.DefaultListCellRenderer;
import javax.swing.JButton;
import javax.swing.JComboBox;
import javax.swing.JFrame;
import javax.swing.JList;
/**
* Classe Exemple
*/
public class Exemple extends JFrame implements ActionListener {
private MonCombo monCombo;
private JButton boutonAjouter=new JButton("Ajouter 1");
private JButton boutonSoustraire=new JButton("Soustraire 1");
private Integer tableauxExterne[]={
new Integer(1),new Integer(10),new Integer(100)
};
/**
* Classe MonCombo
*/
private class MonCombo extends JComboBox{
/**
* Classe MonModele
*/
private class MonModele extends DefaultComboBoxModel{
private Integer tableauxInterne[]={
new Integer(1),new Integer(0),new Integer(2)
};
public Object getElementAt(int index) {
return tableauxInterne[index];
}
public int getSize() {
return tableauxInterne.length;
}
}
/**
* Classe MonRenderer
*/
private class MonRenderer extends DefaultListCellRenderer{
private Integer tableauxExterne[];
public MonRenderer(Integer tableauxExterne[]){
this.tableauxExterne=tableauxExterne;
}
public Component getListCellRendererComponent(JList list, Object value, int index, boolean isSelected, boolean cellHasFocus) {
if(value instanceof Integer){
Integer entier=(Integer)value;
String texte=entier.toString()+" - ";
texte+=tableauxExterne[entier.intValue()].toString();
super.getListCellRendererComponent(list, texte, index, isSelected, cellHasFocus);
}
else{
super.getListCellRendererComponent(list, value, index, isSelected, cellHasFocus);
}
return this;
}
}
private MonCombo(Integer tableauxExterne[]){
super();
setModel(new MonModele());
setRenderer(new MonRenderer(tableauxExterne));
if(getItemCount()>0){
setSelectedIndex(0);
}
}
// Ca fonctionne plus
public void refresh(int index){
setSelectedIndex(index);
revalidate();
}
}
private Exemple(){
super("Exemple");
monCombo=new MonCombo(tableauxExterne);
boutonAjouter.addActionListener(this);
boutonSoustraire.addActionListener(this);
Container conteneur=getContentPane();
conteneur.setLayout(new GridBagLayout());
GridBagConstraints contrainte=new GridBagConstraints();
contrainte.weightx=1;
contrainte.fill=GridBagConstraints.HORIZONTAL;
conteneur.add(monCombo,contrainte);
contrainte.gridy=1;
conteneur.add(boutonAjouter,contrainte);
contrainte.gridy=2;
conteneur.add(boutonSoustraire,contrainte);
pack();
setVisible(true);
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
}
public void actionPerformed(ActionEvent e) {
int index=monCombo.getSelectedIndex();
if(e.getSource()==boutonSoustraire){
for(int i=0;i<tableauxExterne.length;i++){
tableauxExterne[i]=new Integer(tableauxExterne[i].intValue()-1);
}
}
else{
if(e.getSource()==boutonAjouter){
for(int i=0;i<tableauxExterne.length;i++){
tableauxExterne[i]=new Integer(tableauxExterne[i].intValue()+1);
}
}
}
monCombo.refresh(index);
}
public static void main(String args[]){
new Exemple();
}
} |
Partager