j'ai une fenêtre, j'ai crée une liste avec Jlist() et des boutons ajouter et supprimer, je veux savoir comment je fait pour la suppression d'un élément après l'ajouter avec le bouton ajouter.
Version imprimable
j'ai une fenêtre, j'ai crée une liste avec Jlist() et des boutons ajouter et supprimer, je veux savoir comment je fait pour la suppression d'un élément après l'ajouter avec le bouton ajouter.
Il faut utiliser un ListSelectionListener sur la JList pour connaitre l'élément à supprimer.
comment utilisant t-on cette fonction/instruction?
Code:
1
2
3
4
5
6
7 maliste.addListSelectionListener(new ListSelectionListener() { public void valueChanged(ListSelectionEvent e) { To traitement } });
en fait, j'ai créer une classe pour le bouton supprimer afin que je puise supprimer celui qui est sélectionné par l'utilisateur:
donc du coup dans la classe supprimer j'appelle à méthode "remove(string document)" mais je sais pas comment faire pour le traitement dans le addListSelectionListener(), merciCode:
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 public class Supprim extends AbstractAction { private Vue3 fenetre; public Supprim(Vue3 fenetre, String texte) { super(texte); this.fenetre = fenetre; } @Override public void actionPerformed(ActionEvent evt) { listeDoc.addListSelectionListener(new ListSelectionListener() { public void valueChanged(ListSelectionEvent e) { //model.remove(""); } }); } } ma liste contient déjà un modèle : model = new DocumentListModel(); listeDoc = new JList(model); et j'ai créer une classe abstraite: class DocumentListModel extends AbstractListModel{ private static final long serialVersionUID = 1L; Vector<String> documentList = new Vector<String>(); public void add(String document){ documentList.add(document); fireIntervalAdded(this, documentList.size()-1, documentList.size()); } public void remove(String document){ documentList.remove(document); fireIntervalRemoved(this, documentList.size()-1, documentList.size()); } public Object getElementAt(int index) { return documentList.get(index); } public int getSize() { return documentList.size(); } }
Salut,
j'ai pas très bien compris ton code, et je crois que tu te complique la vie.
Voici un code qui ajouter et supprimer un élément dans une liste
Lis le, et en se basant sur ce bout de code, tu me diras ce dont tu as besoin.Code:
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 import javax.swing.*; import java.awt.event.*; import java.awt.*; public class TestList { public static void main(String args[]) { JFrame frm = new JFrame(); final DefaultListModel listModel = new DefaultListModel(); final JList list = new JList(listModel); final JTextField txt = new JTextField(); JButton btnAjouter = new JButton("Ajouter"); btnAjouter.addActionListener(new ActionListener() { public void actionPerformed(ActionEvent ae) { listModel.addElement(txt.getText()); } }); JButton btnEffacer = new JButton("Effacer"); btnEffacer.addActionListener(new ActionListener() { public void actionPerformed(ActionEvent ae) { listModel.remove(list.getSelectedIndex()); } }); JPanel pn = new JPanel(new FlowLayout()); pn.add(btnAjouter); pn.add(btnEffacer); frm.add(txt, BorderLayout.NORTH); frm.add(list, BorderLayout.CENTER); frm.add(pn, BorderLayout.SOUTH); frm.setSize(200, 200); frm.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); frm.setVisible(true); } }
Rmq: la prochaine fois que tu mets du code, songe à mettre l'englober par une balise [CODE]
Oui ça marche merci beaucoup:king: