-
rafraichir ma Jcombo
bonjour,
voilà en gros mon problème, après avoir essayer mille et une chose, je me tourne vers vous.
je construis ma JComboBox avec une table de ma DB, et puis l'affiche, jusque là tous va bien (j'ai utiliser un model).
mon soucis c'est que je veux rajouter, des éléments (insertion au clavier), il récupère bien la donnée pour la placer dans ma DB mais quand, je rappelle ma fonction pour reconstruire mon JComboBox avec la nouvelle table, il ne se rafraichi pas.
Si quelque à une idée à me proposé ou un code comme exemple, merci d'avance
-
Reponse
Bonjour,
Il faut bien comprendre ce qu'est un JComboBox. Ce dernier peut prendre deux aspects. Si sa propriété Editable a été mise à vrai, le JComboBox est alors constitué de quatre eléments :
1 JTextField : qui représente le contrôle de saisie de l'information à insérer.
1 JList : qui s'affiche de manière annimée lorsque l'on clique sur
1 JButton : Le bouton qui permet de dérouler la liste du JCombo.
1 JLabel : qui sert à afficher la valeur sélectionner du JCombo quand Editable est mis à faux.
En clair, par défaut, un JComboBox n'est pas éditable. C'est à vous d'écrire le code qui doit ajouter au JList (le model du JCombo) le texte saisi dans le JTextField (l'éditeur du JCombo) à la condition que le JCombo soit en mode éditable. Pour réagir correctement dans votre code et insérer proprement la saisie dans le JCombo, il vous faudra écouter l'évennement adéquat du JTextField. C'est là que ça se corse. En effet, dans ces conditions, seule la validation par la touche Entrée du clavier dans le champ de saisie du JCombo pourra facilement être détectée. Si jamais l'utilisateur clique sur le bouton pour dérouler la liste en pleine saisie, il ne perd pas sa saisie, mais il n'y trouvera pas ce qu'il a tapé. Et en tout état de cause, il y aura probablement du repaint à faire.
-
ok, merci pour t'as réponse.
je vais mettre résolu, j'ai trouvé une parade, pour faire ce que je voulais, j'ai changé mon JComboBox en JTable et ça fonctionne tout seul et pour mon autre JCombox qui utilise la même table, je la ferme avant de passer à ma fenêtre d'ajout. peut-être pas très propre mais ça à le mérite de fonctionner comme je voulais