IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Composants Java Discussion :

Ajout et suppression dans JList


Sujet :

Composants Java

  1. #1
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Janvier 2006
    Messages
    43
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2006
    Messages : 43
    Points : 36
    Points
    36
    Par défaut Ajout et suppression dans JList
    Bonjour à tous,

    Alors voila mon problème :
    J'ai :
    - une Jlist qui contient des éléments
    - un bouton supprimer
    - un textField
    - un bouton ajouter
    Je voudrai pouvoir retirer des éléments de la JList à l'aide du bouton retirer et ajouter des éléments toujours dans la JList à l'aide du TextField et du bouton ajouter.

    Et voici mon code qui ne marche pas :
    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
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    89
    90
    91
    92
    93
    94
    95
    96
    97
    98
    99
    100
    101
    102
    103
    104
    105
    106
    107
    108
    109
    110
    111
    112
    113
    114
    115
    116
    117
    118
    119
    120
    121
    122
     
    public class Assistant extends JFrame{
     
    	private JPanel p_methodes_liste;
    	private JPanel p_methodes_boutons;
    	private JPanel p_attributs_liste;
    	private JPanel p_attributs_boutons;
    	private JPanel p_global;
     
    	private JLabel titre_methodes;
    	private JLabel titre_attributs;
     
    	private JList methodes;
    	private JList attributs;
     
    	private JTextField saisie_methodes;
    	private JTextField saisie_attributs;
     
    	private JButton retirer_methodes;
    	private JButton retirer_attributs;
    	private JButton ajouter_methodes;
    	private JButton ajouter_attributs;
     
    	private String nomsCouleurs[] = 
    	{ "Noir", "Bleu", "Cyan" };
     
    	public Assistant(CellulePerso cellule){
     
    		this.setTitle("Assistant");
    		Container c = this.getContentPane();
     
    		titre_methodes = new JLabel("Liste des méthodes :");
    		titre_attributs = new JLabel("Liste des attributs :");
     
    		methodes = new JList(nomsCouleurs);
    		attributs = new JList();
     
    		saisie_methodes = new JTextField();
    		saisie_attributs = new JTextField();
     
    		retirer_methodes = new JButton("Retirer cette méthode");
    		retirer_attributs = new JButton("Retirer cet attribut");
    		ajouter_methodes = new JButton("Ajouter cette méthode");
    		ajouter_attributs = new JButton("Ajouter cet attribut");
     
    		p_methodes_liste = new JPanel();
    		p_methodes_liste.setLayout(new GridLayout(2,1));
    		p_methodes_liste.add(titre_methodes);
    		p_methodes_liste.add(new JScrollPane(methodes));
     
    		p_methodes_boutons = new JPanel();
    		p_methodes_boutons.setLayout(new GridLayout(3,1));
    		p_methodes_boutons.add(retirer_methodes);
    		p_methodes_boutons.add(saisie_methodes);
    		p_methodes_boutons.add(ajouter_methodes);
     
    		p_attributs_liste = new JPanel();
    		p_attributs_liste.setLayout(new GridLayout(2,1));
    		p_attributs_liste.add(titre_attributs);
    		p_attributs_liste.add(new JScrollPane(attributs));
     
    		p_attributs_boutons = new JPanel();
    		p_attributs_boutons.setLayout(new GridLayout(3,1));
    		p_attributs_boutons.add(retirer_attributs);
    		p_attributs_boutons.add(saisie_attributs);
    		p_attributs_boutons.add(ajouter_attributs);
     
    		p_global = new JPanel();
    		p_global.setLayout(new GridLayout(2,2));
    		p_global.add(p_methodes_liste);
    		p_global.add(p_methodes_boutons);
    		p_global.add(p_attributs_liste);
    		p_global.add(p_attributs_boutons);
     
    		c.add(p_global);
     
    		ajouter_methodes.addActionListener(
     
    			new ActionListener() {
    				public void actionPerformed(ActionEvent e){
     
    					final DefaultListModel model = (DefaultListModel)methodes.getModel();
     
    					String s = saisie_methodes.getText();
     
    					model.addElement(s);
     
    	                SwingUtilities.invokeLater(new Runnable() {
     
                            public void run() {
     
                            	methodes.ensureIndexIsVisible(model.getSize()-1);
     
                            }
     
    	                });
    				}
    			}
    		);
     
    		retirer_methodes.addActionListener(
     
    			new ActionListener() {
    				public void actionPerformed(ActionEvent e){
     
    					 int[] selected = methodes.getSelectedIndices();
     
                         DefaultListModel model = (DefaultListModel)methodes.getModel();
     
                         for(int i=0; i < selected.length; ++i) {
     
                        	 model.removeElementAt(selected[i] - i);
                         }
    				}
    			}
    		);
     
    		this.pack();
     
    		this.setVisible(true);
    	}
    }
    Les lignes sources d'erreurs sont :
    final DefaultListModel model = (DefaultListModel)methodes.getModel();
    et
    DefaultListModel model = (DefaultListModel)methodes.getModel();
    Visiblement il aime ma façon de caster...

    Si vous aviez une idée SVP

  2. #2
    Membre expert

    Homme Profil pro
    Consultant informatique
    Inscrit en
    Janvier 2004
    Messages
    2 301
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Suisse

    Informations professionnelles :
    Activité : Consultant informatique
    Secteur : Finance

    Informations forums :
    Inscription : Janvier 2004
    Messages : 2 301
    Points : 3 675
    Points
    3 675
    Par défaut
    Hello,

    c'est un problème de typage du modèle. Puisque tu ne l'a pas spécifié, java a choisi un autre type de modèle. Initialise ton JList de cette manière:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     
    DefaultListModel m = new DefaultListModel();
     
    for(String s : nomsCouleurs)
      m.addElement(s);
     
    methodes = new JList(m);
    "Le plug gros problème des citations trouvées sur internet, c'est qu'on ne peut jamais garantir leur authenticité"

    Confucius, 448 av. J-C

Discussions similaires

  1. Recherche;ajout et suppression dans une BD via VB
    Par uvany1 dans le forum VB 6 et antérieur
    Réponses: 3
    Dernier message: 23/04/2007, 16h39
  2. Recherche classe pour ajout/modif/suppression d'articles dans une base de donnée
    Par will89 dans le forum Bibliothèques et frameworks
    Réponses: 1
    Dernier message: 02/02/2007, 11h59
  3. Ajout nouvel objet dans JList
    Par sorry60 dans le forum Composants
    Réponses: 2
    Dernier message: 09/12/2006, 22h37
  4. ajout et suppression dans une procédure
    Par sissi25 dans le forum MS SQL Server
    Réponses: 7
    Dernier message: 30/07/2006, 21h31
  5. Ajouter un PopupMenu dans un JList
    Par Sloneczko dans le forum Composants
    Réponses: 3
    Dernier message: 04/12/2005, 17h37

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo