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 :

[JList] problème de rafraichissement?


Sujet :

Composants Java

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éclairé Avatar de menuge
    Profil pro
    Inscrit en
    Avril 2004
    Messages
    727
    Détails du profil
    Informations personnelles :
    Âge : 44
    Localisation : France, Isère (Rhône Alpes)

    Informations forums :
    Inscription : Avril 2004
    Messages : 727
    Par défaut [JList] problème de rafraichissement?
    voici mon code:

    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
    class AddDocumentsFrame extends JFrame {
    	private static final long serialVersionUID = 1L;
     
    	//Fields
    	private JList listOfDocuments;
    	private JButton addButton;
    	private JButton removeButton;
    	private JButton buildButton;
    	private JButton quitButton;
    	private DocumentListModel model;
     
    	public AddDocumentsFrame() {
    		super();
    		this.setLayout(new BorderLayout());
    		this.setTitle("Copy new documents");
     
    		this.add(new JScrollPane(createListPanel()), BorderLayout.CENTER);
    		this.add(createButtonsPanel(), BorderLayout.SOUTH);
     
     
    		model.add("titi");
     
    		addButton.addActionListener(new ActionListener(){
    			public void actionPerformed(ActionEvent e) {
    				model.add("toto");
    			}
    		});
    	}
     
    	private JPanel createListPanel() {
     
    		JPanel panel = new JPanel();
    		panel.setLayout(new BorderLayout());
    		panel.setBorder(BorderFactory.createTitledBorder("List"));
     
    		//Set the model to the JList
    		model = new DocumentListModel();
    		listOfDocuments = new JList(model);
     
    		panel.add(listOfDocuments, BorderLayout.CENTER);
     
    		return panel;
    	}
     
    	private JPanel createButtonsPanel() {
     
    		JPanel panel = new JPanel();
    		panel.setLayout(new FlowLayout(FlowLayout.RIGHT,5,5));
    		panel.setBorder(BorderFactory.createTitledBorder("Actions"));
     
    		addButton = new JButton("Add");
    		removeButton = new JButton("Remove");
    		buildButton = new JButton("Build");
    		quitButton = new JButton("Quit");
     
    		panel.add(addButton);
    		panel.add(removeButton);
    		panel.add(buildButton);
    		panel.add(quitButton);
     
    		return panel;
    	}
    }
     
    class DocumentListModel extends AbstractListModel{
    	private static final long serialVersionUID = 1L;
    	Vector<String> documentList = new Vector<String>();
     
     
    	public void add(String document){
    		documentList.add(document);
    	}
     
    	public Object getElementAt(int index) {
    		return documentList.get(index);
    	}
     
    	public int getSize() {
    		return documentList.size();
    	}
     
    }
    Désolé de tout passer mais, mon problème (que je suppose très con!!) est que lorsque je clique sur le bouton "Add", rien de se passe à l'affichage!!!!

    Je pense que c'est un truc tout bête mais qui me chauffe pas mal depuis 1h15!!!

    Merci d'avance

  2. #2
    Expert éminent
    Avatar de adiGuba
    Homme Profil pro
    Développeur Java/Web
    Inscrit en
    Avril 2002
    Messages
    13 938
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur Java/Web
    Secteur : Transports

    Informations forums :
    Inscription : Avril 2002
    Messages : 13 938
    Billets dans le blog
    1
    Par défaut
    Salut,

    Citation Envoyé par menuge
    Je pense que c'est un truc tout bête mais qui me chauffe pas mal depuis 1h15!!!
    Oui c'est tout bête : ton modèle n'informe pas la JList de l'ajout de la valeur. Donc la JList ne met pas à jours son affichage...

    Il te faut utiliser les méthodes fireXXXX() hérité de AbstractListModel à chaque fois que ton modèle est modifié. Par exemple pour ta méthode add() :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
        public void add(String document){
            documentList.add(document);
            fireIntervalAdded(this, documentList.size()-1, documentList.size());
        }
    Cela va provoquer l'envoi d'événement de type ListDataEvent vers ta JList, qui le traitera en mettant à jour son affichage...


    Le plus dûr reste à utiliser la bonne méthode fireXXXX(), afin d'envoyer le bon évenement...

    a++

  3. #3
    Membre éclairé Avatar de menuge
    Profil pro
    Inscrit en
    Avril 2004
    Messages
    727
    Détails du profil
    Informations personnelles :
    Âge : 44
    Localisation : France, Isère (Rhône Alpes)

    Informations forums :
    Inscription : Avril 2004
    Messages : 727
    Par défaut
    OK, je comprends maintenant!!!!

    Un grand merci à toi!!!

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. JList Problème de rafraichissement
    Par Celine95 dans le forum Composants
    Réponses: 1
    Dernier message: 06/07/2007, 08h54
  2. [JList] problème avec 2 listeners
    Par papy_tergnier dans le forum Composants
    Réponses: 2
    Dernier message: 21/06/2004, 10h05
  3. [SWING] Problème de rafraichissement
    Par david71 dans le forum AWT/Swing
    Réponses: 3
    Dernier message: 24/05/2004, 15h38
  4. [JTree]problème de rafraichissement
    Par peppena dans le forum Composants
    Réponses: 9
    Dernier message: 20/01/2004, 14h06
  5. Toujours un problème de rafraichissement de DBGrid
    Par tripper.dim dans le forum C++Builder
    Réponses: 4
    Dernier message: 09/12/2002, 13h15

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