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

AWT/Swing Java Discussion :

Un Pane d'un JTabbed pane qui ne s'ajoute pas


Sujet :

AWT/Swing Java

  1. #1
    Membre à l'essai
    Homme Profil pro
    Étudiant
    Inscrit en
    Février 2013
    Messages
    17
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Alpes Maritimes (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Février 2013
    Messages : 17
    Points : 15
    Points
    15
    Par défaut Un Pane d'un JTabbed pane qui ne s'ajoute pas
    Bonjour ,
    J'ai un petit problème , en effet j'ai une fonction qui ajoute plusieurs pane a un jtabbed pane , mais bizarrement il ne l'ajoute 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
    public Tab(HashMap<String, List<Display>> hashMap) {
    			//declaration de variables communes au film en cours
    			this.hashMap=hashMap;
    			//sert a obtenir le bon onglet si il a déja été ajouté
    			this.daystoTab = new HashMap<String, Integer>();
    			this.onglets = new JTabbedPane(JTabbedPane.TOP);
    			this.onglets.setPreferredSize(new Dimension(500, 75));
    			int paneNumber=0; //nombre d'onglets
     
    			for (String key : this.hashMap.keySet()) {// pour toutes les versions de chaque film.
    				// on trie les seances par date
    				Collections.sort(hashMap.get(key), new DisplayComparator());
    				int i = 0;
    				String tmp = "";
    				JPanel pane = new JPanel();
    				JLabel version = new JLabel();
    				String space = "";
    				// Si pour le jour il n'y a qu'une seance
    				if (hashMap.get(key).size() == 1) {
    					i++;
    					tmp = hashMap.get(key).get(0).getDate();
    					version = new JLabel("En version "+ hashMap.get(key).get(0).getType() + " : "+ hashMap.get(key).get(0).getHour());
    					pane.add(version);
    					//l'onglet pour le jour existe deja
    					paneNumber = tabbedPaneModifier(paneNumber, pane,tmp);
    				} else{
    					// si il y a plus d'une seance
    					version = new JLabel("En version "+ hashMap.get(key).get(0).getType() + " :");
    					pane.add(version);
    					while (i < hashMap.get(key).size()-1) {
    						// des que l'on change de date alors on crée un nouveau Jpane ou on modifie un deja existant
    						if (!tmp.equals(hashMap.get(key).get(i).getDate())&& i != 0) {
    							space = "";
    							pane = new JPanel();
    							pane.setBackground(Color.orange);
    							pane.add(version);
    							paneNumber = tabbedPaneModifier(paneNumber, pane,tmp);
    							//on remet a 0 les versions
    							version = new JLabel("En version "+ hashMap.get(key).get(0).getType() + " :");
    						}
    						// on format les séances 
    						pane.add(new JLabel(space+ hashMap.get(key).get(i).getHour()));
    						tmp = hashMap.get(key).get(i).getDate();
    						space = ",";
    						i++;
    					}
    					//fin de la boucle , il faut maintenant ajouter la derniere date
    					System.out.println("derniere date de la clé");
    					paneNumber = tabbedPaneModifier(paneNumber, pane,tmp);
    				}
    			}
    			System.out.println("on ajoute le JtabbedPane");
    			this.add(onglets);
    		}
     
    		private int tabbedPaneModifier(int paneNumber, JPanel pane,String tmp) {
    			System.out.println(tmp);
    			for(Component compo : pane.getComponents()){
    				System.out.println(compo);
    			}
    			System.out.println();
    			System.out.println("il y a "+this.onglets.getTabCount()+" onglets");
    			if(this.daystoTab.containsKey(DateToDay(tmp)+ " "+ tmp.substring(8))){
     
    				//on recupere le numéro d'onglet
    				int number=daystoTab.get(DateToDay(tmp)+ " "+ tmp.substring(8));
    				System.out.println("modification de "+number);
    				//on recupere le component auquel on ajoute notre liste de séances
    				JPanel indiceOnglet =(JPanel)this.onglets.getComponentAt(number);
    				indiceOnglet.add(pane);
    				this.onglets.setComponentAt(number, indiceOnglet);
    			}else{
    				System.out.println("ajout de "+tmp);
    				System.out.println("a l'onget "+paneNumber+" le nom est:"+ DateToDay(tmp)	+ " "+ tmp.substring(8));
    				this.daystoTab.put(DateToDay(tmp)+ " "+ tmp.substring(8), paneNumber);
    				if(pane==null){System.out.println("merde");}
    				System.out.println(DateToDay(tmp)	+ " "+ tmp.substring(8));
    				this.onglets.add(DateToDay(tmp)	+ " "+ tmp.substring(8), pane);
    				paneNumber++;
    				System.out.println(this.onglets.getTabCount());
    			}
    			System.out.println("nombre d'onglets :"+this.onglets.getTabCount());
    			return paneNumber;
    		}
    Pour info l'execution de mon code produit ca
    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
    film :Evil Dead
    2013-05-20
    javax.swing.JLabel[,0,0,0x0,invalid,alignmentX=0.0,alignmentY=0.0,border=,flags=8388608,maximumSize=,minimumSize=,preferredSize=,defaultIcon=,disabledIcon=,horizontalAlignment=LEADING,horizontalTextPosition=TRAILING,iconTextGap=4,labelFor=,text=En version Numérique :,verticalAlignment=CENTER,verticalTextPosition=CENTER]
     
    il y a 0 onglets
    ajout de 2013-05-20
    a l'onget 0 le nom est:lundi 20
    lundi 20
    1
    nombre d'onglets :1
    derniere date de la clé
    2013-05-21
    javax.swing.JLabel[,0,0,0x0,invalid,alignmentX=0.0,alignmentY=0.0,border=,flags=8388608,maximumSize=,minimumSize=,preferredSize=,defaultIcon=,disabledIcon=,horizontalAlignment=LEADING,horizontalTextPosition=TRAILING,iconTextGap=4,labelFor=,text=En version Numérique :,verticalAlignment=CENTER,verticalTextPosition=CENTER]
    javax.swing.JLabel[,0,0,0x0,invalid,alignmentX=0.0,alignmentY=0.0,border=,flags=8388608,maximumSize=,minimumSize=,preferredSize=,defaultIcon=,disabledIcon=,horizontalAlignment=LEADING,horizontalTextPosition=TRAILING,iconTextGap=4,labelFor=,text=17:30,verticalAlignment=CENTER,verticalTextPosition=CENTER]
     
    il y a 1 onglets
    ajout de 2013-05-21
    a l'onget 1 le nom est:mardi 21
    mardi 21
    1
    nombre d'onglets :1
    on ajoute le JtabbedPane
    film :Gatsby le Magnifique
    2013-05-20
    javax.swing.JLabel[,0,0,0x0,invalid,alignmentX=0.0,alignmentY=0.0,border=,flags=8388608,maximumSize=,minimumSize=,preferredSize=,defaultIcon=,disabledIcon=,horizontalAlignment=LEADING,horizontalTextPosition=TRAILING,iconTextGap=4,labelFor=,text=En version Numérique :,verticalAlignment=CENTER,verticalTextPosition=CENTER]
     
    il y a 0 onglets
    ajout de 2013-05-20
    a l'onget 0 le nom est:lundi 20
    lundi 20
    1
    nombre d'onglets :1
    derniere date de la clé
    2013-05-21
    javax.swing.JLabel[,0,0,0x0,invalid,alignmentX=0.0,alignmentY=0.0,border=,flags=8388608,maximumSize=,minimumSize=,preferredSize=,defaultIcon=,disabledIcon=,horizontalAlignment=LEADING,horizontalTextPosition=TRAILING,iconTextGap=4,labelFor=,text=En version Numérique :,verticalAlignment=CENTER,verticalTextPosition=CENTER]
    javax.swing.JLabel[,0,0,0x0,invalid,alignmentX=0.0,alignmentY=0.0,border=,flags=8388608,maximumSize=,minimumSize=,preferredSize=,defaultIcon=,disabledIcon=,horizontalAlignment=LEADING,horizontalTextPosition=TRAILING,iconTextGap=4,labelFor=,text=10:30,verticalAlignment=CENTER,verticalTextPosition=CENTER]
    javax.swing.JLabel[,0,0,0x0,invalid,alignmentX=0.0,alignmentY=0.0,border=,flags=8388608,maximumSize=,minimumSize=,preferredSize=,defaultIcon=,disabledIcon=,horizontalAlignment=LEADING,horizontalTextPosition=TRAILING,iconTextGap=4,labelFor=,text=,13:45,verticalAlignment=CENTER,verticalTextPosition=CENTER]
    javax.swing.JLabel[,0,0,0x0,invalid,alignmentX=0.0,alignmentY=0.0,border=,flags=8388608,maximumSize=,minimumSize=,preferredSize=,defaultIcon=,disabledIcon=,horizontalAlignment=LEADING,horizontalTextPosition=TRAILING,iconTextGap=4,labelFor=,text=,17:00,verticalAlignment=CENTER,verticalTextPosition=CENTER]
     
    il y a 1 onglets
    ajout de 2013-05-21
    a l'onget 1 le nom est:mardi 21
    mardi 21
    1
    nombre d'onglets :1
    2013-05-20
    javax.swing.JLabel[,0,0,0x0,invalid,alignmentX=0.0,alignmentY=0.0,border=,flags=8388608,maximumSize=,minimumSize=,preferredSize=,defaultIcon=,disabledIcon=,horizontalAlignment=LEADING,horizontalTextPosition=TRAILING,iconTextGap=4,labelFor=,text=En version 3D :,verticalAlignment=CENTER,verticalTextPosition=CENTER]
     
    il y a 1 onglets
    modification de 0
    nombre d'onglets :1
    derniere date de la clé
    2013-05-21
    javax.swing.JLabel[,0,0,0x0,invalid,alignmentX=0.0,alignmentY=0.0,border=,flags=8388608,maximumSize=,minimumSize=,preferredSize=,defaultIcon=,disabledIcon=,horizontalAlignment=LEADING,horizontalTextPosition=TRAILING,iconTextGap=4,labelFor=,text=En version 3D :,verticalAlignment=CENTER,verticalTextPosition=CENTER]
    javax.swing.JLabel[,0,0,0x0,invalid,alignmentX=0.0,alignmentY=0.0,border=,flags=8388608,maximumSize=,minimumSize=,preferredSize=,defaultIcon=,disabledIcon=,horizontalAlignment=LEADING,horizontalTextPosition=TRAILING,iconTextGap=4,labelFor=,text=11:00,verticalAlignment=CENTER,verticalTextPosition=CENTER]
    javax.swing.JLabel[,0,0,0x0,invalid,alignmentX=0.0,alignmentY=0.0,border=,flags=8388608,maximumSize=,minimumSize=,preferredSize=,defaultIcon=,disabledIcon=,horizontalAlignment=LEADING,horizontalTextPosition=TRAILING,iconTextGap=4,labelFor=,text=,14:30,verticalAlignment=CENTER,verticalTextPosition=CENTER]
    javax.swing.JLabel[,0,0,0x0,invalid,alignmentX=0.0,alignmentY=0.0,border=,flags=8388608,maximumSize=,minimumSize=,preferredSize=,defaultIcon=,disabledIcon=,horizontalAlignment=LEADING,horizontalTextPosition=TRAILING,iconTextGap=4,labelFor=,text=,17:45,verticalAlignment=CENTER,verticalTextPosition=CENTER]
     
    il y a 1 onglets
    modification de 1
    Exception in thread "main" java.lang.IndexOutOfBoundsException: Index: 1, Size: 1
    	at java.util.ArrayList.rangeCheck(ArrayList.java:571)
    	at java.util.ArrayList.get(ArrayList.java:349)
    	at javax.swing.JTabbedPane.getComponentAt(JTabbedPane.java:1223)
    	at GUI.MovieInformation$Tab.tabbedPaneModifier(MovieInformation.java:226)
    	at GUI.MovieInformation$Tab.<init>(MovieInformation.java:206)
    	at GUI.MovieInformation.<init>(MovieInformation.java:59)
    	at GUI.CinemaWindow.setup(CinemaWindow.java:77)
    	at GUI.CinemaWindow.<init>(CinemaWindow.java:94)
    	at GUI.CinemaFrame.<init>(CinemaFrame.java:21)
    	at GUI.CinemaFrame.main(CinemaFrame.java:58)
    J'ai essayé de verifier mon setComponentAt mais les indices sont bon ..
    Merci d'avance pour votre aide

  2. #2
    Membre actif Avatar de hbennou
    Homme Profil pro
    Développeur Java
    Inscrit en
    Mai 2008
    Messages
    162
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur Java
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mai 2008
    Messages : 162
    Points : 205
    Points
    205
    Par défaut
    Bonjour,

    l'exception est levée à ce niveau donc vérifie que contient number:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    JPanel indiceOnglet =(JPanel)this.onglets.getComponentAt(number);

  3. #3
    Membre à l'essai
    Homme Profil pro
    Étudiant
    Inscrit en
    Février 2013
    Messages
    17
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Alpes Maritimes (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Février 2013
    Messages : 17
    Points : 15
    Points
    15
    Par défaut
    merci de ta réponse rapide , c'est normal car l'onglet n'a pas était ajouté :/
    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
    a l'onget 0 le nom est:lundi 20
    lundi 20
    1
    nombre d'onglets :1
    derniere date de la clé
    2013-05-21
    javax.swing.JLabel[,0,0,0x0,invalid,alignmentX=0.0,alignmentY=0.0,border=,flags=8388608,maximumSize=,minimumSize=,preferredSize=,defaultIcon=,disabledIcon=,horizontalAlignment=LEADING,horizontalTextPosition=TRAILING,iconTextGap=4,labelFor=,text=En version Numérique :,verticalAlignment=CENTER,verticalTextPosition=CENTER]
    javax.swing.JLabel[,0,0,0x0,invalid,alignmentX=0.0,alignmentY=0.0,border=,flags=8388608,maximumSize=,minimumSize=,preferredSize=,defaultIcon=,disabledIcon=,horizontalAlignment=LEADING,horizontalTextPosition=TRAILING,iconTextGap=4,labelFor=,text=10:30,verticalAlignment=CENTER,verticalTextPosition=CENTER]
    javax.swing.JLabel[,0,0,0x0,invalid,alignmentX=0.0,alignmentY=0.0,border=,flags=8388608,maximumSize=,minimumSize=,preferredSize=,defaultIcon=,disabledIcon=,horizontalAlignment=LEADING,horizontalTextPosition=TRAILING,iconTextGap=4,labelFor=,text=,13:45,verticalAlignment=CENTER,verticalTextPosition=CENTER]
    javax.swing.JLabel[,0,0,0x0,invalid,alignmentX=0.0,alignmentY=0.0,border=,flags=8388608,maximumSize=,minimumSize=,preferredSize=,defaultIcon=,disabledIcon=,horizontalAlignment=LEADING,horizontalTextPosition=TRAILING,iconTextGap=4,labelFor=,text=,17:00,verticalAlignment=CENTER,verticalTextPosition=CENTER]
     
    il y a 1 onglets
    ajout de 2013-05-21
    a l'onget 1 le nom est:mardi 21
    mardi 21
    1
    nombre d'onglets :1
    on le voit bien la et j utilise toujours la meme methode et quand je fait un sysout onglets.getTabCount()) aprés ajout de l'onget de mardi 21 , celui ci n'a pas bougé :/ et je ne comprend vraiment pas

  4. #4
    Membre actif Avatar de hbennou
    Homme Profil pro
    Développeur Java
    Inscrit en
    Mai 2008
    Messages
    162
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur Java
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mai 2008
    Messages : 162
    Points : 205
    Points
    205
    Par défaut
    T'as essayé avec getComponentAt(number-1) car le premier indice d'un tableau est 0 et non 1?

Discussions similaires

  1. Affichage Refresh JTabbed Pane
    Par Liiinz dans le forum Agents de placement/Fenêtres
    Réponses: 2
    Dernier message: 23/08/2011, 11h21
  2. Réponses: 5
    Dernier message: 07/06/2011, 13h27
  3. jTabbed Pane affichage
    Par nasriOM dans le forum NetBeans
    Réponses: 6
    Dernier message: 28/12/2007, 10h58
  4. [MySQL] slashes qui ne s'ajoutent pas dans la bd
    Par Sayrus dans le forum PHP & Base de données
    Réponses: 4
    Dernier message: 08/03/2007, 18h46
  5. [MySQL] Valeur qui ne s'ajoute pas dans une BDD
    Par Luverger dans le forum PHP & Base de données
    Réponses: 9
    Dernier message: 09/02/2007, 11h04

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