Si l'utilisateur sélectionne l'élément dont l'index est 1 et le change de "123" à "abcd". Comment puis-je définir "abcd" au lieu de "123" (dans NetBeans)? Aussi comment puis-je supprimer l'article pour toujours?Editable JComboBox
Répondre
Essayez les solutions suivantes. Lorsque l'utilisateur change une valeur ET appuie sur [ENTER], l'ancienne valeur est supprimée et la nouvelle est ajoutée.
Si vous devez remplacer la valeur à la même position, vous devrez fournir votre propre modèle qui prend en charge l'ajout de valeurs à une certaine position.
final DefaultComboBoxModel model = new DefaultComboBoxModel(new String[] {"Red", "Green", "Blue"});
comboBox = new JComboBox(model);
comboBox.setEditable(true);
comboBox.addActionListener(new ActionListener() {
private int selectedIndex = -1;
@Override
public void actionPerformed(ActionEvent e) {
int index = comboBox.getSelectedIndex();
if(index >= 0) {
selectedIndex = index;
}
else if("comboBoxEdited".equals(e.getActionCommand())) {
Object newValue = model.getSelectedItem();
model.removeElementAt(selectedIndex);
model.addElement(newValue);
comboBox.setSelectedItem(newValue);
selectedIndex = model.getIndexOf(newValue);
}
}
});
comboBox.setSelectedIndex(0);
Nice! mais avec votre code, je peux supprimer un élément pas plus que cela, pourquoi ?? – Johanna
Vous êtes autorisé à déboguer le code vous-même pour voir ce qui se passe! – camickr
Vous ne savez pas quand vous voulez supprimer la ligne ... Si vous voulez le supprimer lorsque l'utilisateur efface l'entrée, vérifiez cela avant de rajouter l'élément –
Lire le tutoriel How to Use Combo Boxes
zone de liste déroulante éditable, avant et après le bouton fléché est cliqué
Voir la: En utilisant une partie Combo éditable Box .
Snippet de cette page:
JComboBox patternList = new JComboBox(patternExamples);
patternList.setEditable(true);
patternList.addActionListener(this);
Que voulez-vous dire par set "ABCD". Voulez-vous changer la valeur de votre modèle? Si oui, quel modèle utilisez-vous? –
Je veux dire que je veux changer "123" en "abcd", pour toujours. également j'utilise le modèle par défaut et avec setEditable (true) Je le fais comme un ComboBox modifiable – Johanna
Étant donné que vous ne lisez pas les suggestions données dans vos autres publications, il semble que ce soit une perte de temps pour faire une suggestion dans cet article. – camickr