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 :

Comment faire apparaître une JList vide ?


Sujet :

Composants Java

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Inscrit en
    Juin 2006
    Messages
    65
    Détails du profil
    Informations forums :
    Inscription : Juin 2006
    Messages : 65
    Par défaut Comment faire apparaître une JList vide ?
    Bonjour.
    Après avoir arpenté la section Swing/listes du forum, je me décide à poster...

    C'est dingue, c'est toujours sur les trucs les plus simples qu'on trouve le moins de doc

    J'ai créé ma JFrame, associé un JPanel sur le ContentPane, et créé une JList dans le panel.
    Je voudrais simplement que ma JList s'affiche à l'écran, même si je ne met rien dedans !
    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
     
    public class MainFrame extends JFrame{
     
    	public DefaultListModel newTextListModel;
     
    	public MainFrame(){
    		super();
    		newTextListModel = new DefaultListModel();
    		buildFrame();
    	}
     
    	// Création de la fenêtre
    	private void buildFrame(){
    		setTitle("I am the main window");
    		setSize(320,240); 
    		setLocationRelativeTo(null); //On centre la fenêtre sur l'écran
    		setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
    		setContentPane(buildContentPane());
    	}
     
    	private JPanel buildContentPane(){
    		JPanel panel = new JPanel();
    		panel.setLayout(new FlowLayout());
    		/// Création de la JList
    		JList textlist = new JList(newTextListModel);
    		textlist.setLayoutOrientation(JList.HORIZONTAL_WRAP);
    		textlist.setVisibleRowCount(-1);
    		textlist.setSize(100, 200); // Marche pas...
    		textlist.setVisible(true);  // Marche pas...
     
    		panel.add(textlist);
    		return panel;
    	}
     
    }
    Lorsque je rempli le DefaultListModel, c'est nikel. Mais je voudrais que, même vide, la liste s'affiche avec des dimensions précises.
    J'ai fait plusieurs essai, comme des setSize sur la liste ou sur son conteneur, sans résultat...
    Peut être mon problème est plus global que ça, peut être n'ai-je pas bien compris le principe de Swing ?
    Je vous remercie pour tout indice qui pourrait me mettre sur la piste
    A bientôt !

  2. #2
    Membre émérite Avatar de herch
    Profil pro
    Inscrit en
    Mai 2006
    Messages
    655
    Détails du profil
    Informations personnelles :
    Âge : 39
    Localisation : Canada

    Informations forums :
    Inscription : Mai 2006
    Messages : 655
    Par défaut
    commente cette ligne pour voir
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    textlist.setVisibleRowCount(-1);

  3. #3
    Membre confirmé
    Inscrit en
    Juin 2006
    Messages
    65
    Détails du profil
    Informations forums :
    Inscription : Juin 2006
    Messages : 65
    Par défaut
    Merci pour la rapidité
    Pour rappel :


    Herch, le fait de commenter cette ligne ne fait rien... d'ailleurs, les lignes
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    textlist.setLayoutOrientation(JList.HORIZONTAL_WRAP);
    textlist.setVisibleRowCount(-1);
    textlist.setSize(100, 200); // Marche pas...
    textlist.setVisible(true);  // Marche pas...
    ...sont différents essais pour afficher la liste, qui n'ont pas marché.

    Est-ce que ça pourrait venir du Layout ?
    Images attachées Images attachées  

  4. #4
    Membre émérite Avatar de herch
    Profil pro
    Inscrit en
    Mai 2006
    Messages
    655
    Détails du profil
    Informations personnelles :
    Âge : 39
    Localisation : Canada

    Informations forums :
    Inscription : Mai 2006
    Messages : 655
    Par défaut
    essaie en mettant ta JList dans un JScrollPane
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
     
    private JPanel buildContentPane(){
    	JPanel panel = new JPanel();
    	panel.setLayout(new FlowLayout());
    	/// Création de la JList
    	JList textlist = new JList(newTextListModel);
    	JScrollPane scroll = new JScrollPane(textlist);
    	scroll.setPreferredSize(new Dimension(100, 120));
    	panel.add(scroll);
    	return panel;
    }

  5. #5
    Membre confirmé
    Inscrit en
    Juin 2006
    Messages
    65
    Détails du profil
    Informations forums :
    Inscription : Juin 2006
    Messages : 65
    Par défaut
    WAW !
    J'ai une belle liste vide, maintenant, merci.

    J'avais déjà essayé le JScrollPane mais pas avec une preferedSize.
    Par contre j'avais essayé un JPanel avec sa preferedSize, mais ça n'a pas marché...
    Pour mes premiers pas en Swing, je sens cette API un peu capricieuse. Je sens d'ailleurs qu'on va se revoir sur le forum
    En tout cas merci pour ce pb, et à bientôt !

    Martin

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

Discussions similaires

  1. Réponses: 0
    Dernier message: 05/09/2011, 17h39
  2. Réponses: 1
    Dernier message: 22/11/2005, 11h00
  3. [Stratégie] Erreurs: faire apparaître une fenêtre
    Par seb.ch dans le forum AWT/Swing
    Réponses: 4
    Dernier message: 04/08/2005, 15h08
  4. Comment faire fonctionner une scroll bar ???
    Par toto4650 dans le forum MFC
    Réponses: 10
    Dernier message: 18/07/2005, 16h47
  5. Réponses: 2
    Dernier message: 13/12/2004, 15h16

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