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 et scrollpane, archisimple.. normalement..


Sujet :

Composants Java

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Profil pro
    Inscrit en
    Mai 2009
    Messages
    17
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2009
    Messages : 17
    Par défaut Jlist et scrollpane, archisimple.. normalement..
    Bonjour,
    Ca fait des heures que j'arrive pas à mettre une pauv' scrollPane à une JList, je deviens fou!

    Ma classe :

    J'apelle ce panel dans un jtabbedpane en faisant ZonePanel.getZonePanel();

    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
    123
    124
    125
    126
    127
    128
    129
    130
    131
    132
    133
    134
    135
    136
    137
    138
    139
    140
    141
    142
    143
    144
    145
    146
    147
    148
    149
    150
    151
    152
    153
    154
    155
    156
    157
    158
    159
    160
    161
    162
    163
    164
    165
    166
    167
    168
    169
    170
    171
    172
    173
    174
    175
    176
    177
    178
    179
    180
    181
    182
    183
    184
    185
    186
    187
    188
    189
    190
    191
    192
    193
    194
    195
    196
    197
    198
    199
    200
    201
    202
    203
    204
    205
    206
    207
    208
    209
    210
    211
    212
    213
    214
    215
    216
    package affichage;
     
    import gestion.Controleur;
    import gestion.FormatageHelper;
    import gestion.Intermediaire;
     
    import java.awt.Color;
    import java.io.IOException;
    import java.util.ArrayList;
     
    import javax.swing.BorderFactory;
    import javax.swing.DefaultListModel;
    import javax.swing.JComponent;
    import javax.swing.JLabel;
    import javax.swing.JList;
    import javax.swing.JPanel;
    import javax.swing.JScrollPane;
    import javax.swing.JSlider;
    import javax.swing.JTextField;
    import javax.swing.event.ChangeEvent;
    import javax.swing.event.ChangeListener;
     
    public class ZonePanel extends JComponent {
     
    	/**
             * Classe du JPanel qui concerne une zone géographique
             */
    	private static final long serialVersionUID = 1L;
    	/**
             * ID
             */
     
    	private static JPanel panelZone = null;
    	private JList listeErreurs = null;
    	private JList reponseRegDep = null;
    	private JLabel label = null;
    	private JList listeCommunes = null;
    	private JLabel labelRecherche = null;
     
    	public ZonePanel() throws IOException {
    		final Intermediaire service = new Intermediaire();
    		final Controleur controleur = new Controleur();
    		controleur.setService(service);
     
     
    		// Création du panel
    		panelZone = new JPanel(false);
     
    		// Définition du gestionnaire d'interface
    		panelZone.setLayout(null);
     
    		// Déclaration de la zone de notification d'erreurs
    		listeErreurs = FormatageHelper.FormatageZoneNotifications(panelZone);
     
    		// Prémière ligne, le titre
    		FormatageHelper.FormatageTitre(panelZone,
    				"Informations sur les communes");
     
    		// Troisième ligne informations sur un département par son numéro
    		label = new JLabel("Nom de la commune :");
    		label.setBounds(30, 55, 125, 20);
    		panelZone.add(label);
     
    		final JTextField champRegDep = new JTextField();
    		champRegDep.setBounds(165, 55, 140, 21);
    		panelZone.add(champRegDep);
     
    		final JSlider slider = new JSlider(0, 50, 0);
    		slider.setBorder(BorderFactory.createTitledBorder("Rayon de la zone"));
    		slider.setMajorTickSpacing(10);
    		slider.setMinorTickSpacing(5);
    		slider.setPaintTicks(true);
    		slider.setPaintLabels(true);
     
    		slider.setBounds(320, 33, 220, 60);
    		panelZone.add(slider);
     
    		// Formatage zone de réponses
    		reponseRegDep = FormatageHelper.FormatageZoneReponses(panelZone);
     
    		panelZone.add(getLabelRecherche());
    		panelZone.add(new JScrollPane(getListeCommunes()));
     
     
    		labelRecherche.setVisible(false);
     
     
    		slider.addChangeListener((new ChangeListener() {
    			@Override
    			public void stateChanged(ChangeEvent c) {
    				// On récupère le slider source
    				JSlider slider = (JSlider) c.getSource();
    				ArrayList<String> listeCommunesProches = new ArrayList<String>();
     
    				// On formate le champ
    				String champTexte = FormatageHelper.FormatageCode(champRegDep
    						.getText());
     
    				// On instancie les listes de réponses et erreurs
    				DefaultListModel listReponses;
    				DefaultListModel listErreurs;
     
    				// Si le slider n'est pas entrain d'être ajusté, et qu'il y'a
    				// aucune erreur, et que la valeur du slider n'est pas zéro
     
    				if (!slider.getValueIsAdjusting()
    						&& controleur.validationSyntaxiqueCommune(champTexte) == null
    						&& slider.getValue() != 0) {
    					try {
    						getListeCommunes().setVisible(true);
    					} catch (IOException e1) {
    						e1.printStackTrace();
    					}
    					getLabelRecherche().setVisible(true);
    					// Remise à zéro des listes
    					listReponses = new DefaultListModel();
    					listErreurs = new DefaultListModel();
    					int rayon = slider.getValue();
    					try {
    						// On récupère la liste des communes proches
    						listeCommunesProches = service.listeComProche(
    								champTexte, rayon);
    					} catch (IOException e) {
    						e.printStackTrace();
    					}
    					// On affiche quelques données à droite
    					listReponses = FormatageHelper.FormatageReponseUnique(
    							listReponses, "Rayon de la zone", String
    									.valueOf(rayon)
    									+ " kms");
    					listReponses = FormatageHelper.FormatageReponseUnique(
    							listReponses, "Nombre de communes", String
    									.valueOf(listeCommunesProches.size()));
    					listReponses = FormatageHelper.FormatageReponseUnique(
    							listReponses, "Commune la plus proche",
    							listeCommunesProches.get(0));
    					listReponses = FormatageHelper.FormatageReponseUnique(
    							listReponses, "Commune la plus éloignée",
    							listeCommunesProches.get(listeCommunesProches
    									.size() - 1));
    					DefaultListModel listeTemp = new DefaultListModel();
    					for (String com : listeCommunesProches){
    						listeTemp.addElement(com);
    					}
    					listeCommunes.setVisible(true);
    					listeCommunes.setModel(listeTemp);
    					reponseRegDep.setModel(listReponses);
    					listeErreurs.setModel(listErreurs);
    				} else {
    					// Sinon on affiche l'erreur en bas et on efface la zone de
    					// réponse
    					listErreurs = new DefaultListModel();
    					listReponses = new DefaultListModel();
    					listErreurs.addElement(controleur
    							.validationSyntaxiqueCommune(champTexte));
    					reponseRegDep.setModel(listReponses);
    					listeErreurs.setModel(listErreurs);
    				}
    			}
    		}));
     
    	}
     
    	/**
             * @return le panel de zone
             * @throws IOException
             */
    	public static JPanel getZonePanel() throws IOException {
    		if (panelZone == null) {
    			new ZonePanel();
    		}
    		return panelZone;}
     
    	/**
             * @return la Jlist pour afficher les villes
             * @throws IOException 
             */
    	public JList getListeCommunes() throws IOException {
    		if (listeCommunes == null){
    			listeCommunes = new JList();
    			listeCommunes.setBorder(BorderFactory.createLineBorder(Color.lightGray));
    			listeCommunes.setBounds(30, 120,500,400);
    			listeCommunes.setLayoutOrientation(JList.VERTICAL_WRAP);
    			listeCommunes.setVisibleRowCount(-1);
    			listeCommunes.setVisible(true);
    		}
    		return listeCommunes;
    	}
     
    	/**
             * @param listeCommunes
             */
    	public void setListeCommunes(JList listeCommunes) {
    		this.listeCommunes = listeCommunes;
    	}
     
    	/**
             * @return le label de recherche a cote de la combobox
             */
    	public JLabel getLabelRecherche() {
    		if ( labelRecherche == null){
    			labelRecherche = new JLabel("Voici la liste des villes dans ce rayon ");
    			labelRecherche.setVisible(true);
    			labelRecherche.setBounds(30,80,300,20);
    		}
    		return labelRecherche;
    	}
     
    	/**
             * @param labelRecherche
             */
    	public void setLabelRecherche(JLabel labelRecherche) {
    		this.labelRecherche = labelRecherche;
    	}
     
    }
    quand je fais panelZone.add(new JScrollPane(getListeCommunes()); ça n'affiche strictement rien!

  2. #2
    Membre émérite Avatar de fraco
    Profil pro
    Inscrit en
    Juin 2006
    Messages
    750
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Juin 2006
    Messages : 750
    Par défaut
    panelZone.revalidate();
    oui ?

Discussions similaires

  1. Problème ScrollPane JList Vector
    Par nadong dans le forum Composants
    Réponses: 1
    Dernier message: 22/06/2015, 03h33
  2. redefinir un scrollpane pour une JList
    Par ____22 dans le forum Composants
    Réponses: 4
    Dernier message: 17/07/2008, 15h18
  3. JList en line wrapping
    Par dreydrey dans le forum Composants
    Réponses: 3
    Dernier message: 16/12/2003, 12h22
  4. [Flash MX] texte et scrollPane
    Par dens63 dans le forum Flash
    Réponses: 11
    Dernier message: 21/11/2003, 19h40

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