import java.awt.event.*; import javax.swing.*; import java.text.DecimalFormat; import java.util.Vector; public class ComboPlus extends JFrame implements KeyListener { private JPanel _pane; private JComboBox _combo; static final double ajout = 0.01; public ComboPlus() { super( "ComboPlus Solution" ); _pane = new JPanel(); _pane.setLayout(null); _combo = new JComboBox(); _combo.setBounds(10,10,120,20); _combo.setVisible(true); _combo.addItem("19.07"); _combo.addKeyListener(this); _pane.add(_combo); getContentPane().add(_pane); setSize( 150, 150 ); setVisible( true ); } public void keyPressed(KeyEvent evt) { String value = (String)_combo.getSelectedItem(); int index = _combo.getSelectedIndex(); DecimalFormat df = new DecimalFormat("########.00"); Vector vect = new Vector(); for(int i=0;i<_combo.getItemCount();i++) { vect.add((String)_combo.getItemAt(i)); } value = value.replace(',','.'); double nb = Double.parseDouble(value); if(evt.getKeyCode() == KeyEvent.VK_ADD) { nb += ajout; } if(evt.getKeyCode() == KeyEvent.VK_SUBTRACT) { nb -= ajout; } vect.setElementAt(df.format(nb),index); _combo.setEditable(true); _combo.removeAllItems(); for(int i=0;i<vect.size();i++) { _combo.addItem(vect.elementAt(i)); } _combo.setSelectedItem(df.format(nb)); _combo.setEditable(false); } public void keyReleased(KeyEvent evt){} public void keyTyped(KeyEvent evt){} public static void main(String[] args) { ComboPlus appli = new ComboPlus(); appli.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE ); } }