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.
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.
N'oubliez pas de consulter les FAQ Java et les cours et tutoriels Java
Que la force de la puissance soit avec le courage de ta sagesse.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
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(), merci
Code : Sélectionner tout - Visualiser dans une fenêtre à part
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 : Sélectionner tout - Visualiser dans une fenêtre à part
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]
Partager