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 :

[JTabbedPane] effacer un onglet


Sujet :

Composants Java

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre du Club
    Inscrit en
    Avril 2009
    Messages
    6
    Détails du profil
    Informations forums :
    Inscription : Avril 2009
    Messages : 6
    Par défaut [JTabbedPane] effacer un onglet
    Bonjour ,

    Mon programme instacie un JtabbedPane avec 4 onglet (chaque onglet contient un JPanel qui contient a son tour des Jtextfield,Jbutton ,etc..) en cliquant sur un boutton Add contenu dans l'un des onglets, un nouveau onglet fait son apparation ce dernier contient un formulaire; le probleme est le suivant : A la fin de ce formulaire j'ai un Jbutton Cancel ; je voudrais que en cliquant dessus mon onglets qui contient le formulaire se férme., (une exception se génere) la methode que jutilise est removetabAt(indexDeLonglet) mais le probleme ne vient pas de la.

    J'ai fais un petit teste : au démarrage jinstacie mes 4 onglets normal et aussi en meme temps mon 5eme onglet qui contient le formulaire et la en appuyant sur Cancel mon onglet se férme sans probleme

    je déduis que je ne peux pas modifié mon JtabbedPane a partir de composants situé dans onglet qui n'a pas été instacié au début du programme. // je m'éxcuse si semble tordu un peux mais je ne vois pas comment m'éxprimé autrement.


    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
    public MyFrame() {
            super();
            this.setTitle("SUPG2S");
            this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
            this.setSize(700, 500);
            this.setContentPane(getTabbedPane());   
        }
     
        public JTabbedPane getTabbedPane(){
            tabbedPane  = new JTabbedPane();
            tabbedPane.insertTab("Fournisseur", null, getPanel1(), null, 0);
            tabbedPane.insertTab("Client", null, getPanel2(), null, 1);
            tabbedPane.insertTab("Produit", null, getPanel3(), null, 2);
            tabbedPane.insertTab("Stock", null, getPanel4(), null, 3);
            return tabbedPane;
     
        }
    Ici ma Classe ActionListener



    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
    public ListenerFourni( JTabbedPane tabbedPane , int n) {
            this.tabbedPane = tabbedPane;
            this.n =  n;
        }
        
       
    
        public void actionPerformed(ActionEvent ev) { 
                
       if (n==1)//ici le Jbutton (contenu dans l'un des 4 onglet instacié au démarage) qui ajoute mon 5eme onglet
                {        
                coco = new MyFrame();
                tabbedPane.insertTab("Add fourni", null, coco.getPanelAddFourni(), null, 4); 
                tabbedPane.setSelectedIndex(4);
                tabbedPane.validate();
                }
                    if (n==2){//not supported yet}
                    if (n==3){//not supported yet}
                
                    if (n==4) // ici le jbutton contenu dans le nouveau 5eme onglet et qui est supposé le férmer
                {
                    coco = new MyFrame();
                    tabbedPane.removeTabAt(4); // l'exception se fait son apparition dans cette ligne
                    tabbedPane.validate();
                }
                
                    if (n==5){//not supported yet}
        }

    je vous copie aussi les exceptions générer :
    Exception in thread "AWT-EventQueue-0" java.lang.IndexOutOfBoundsException: Index: 4, Tab count: 4
    at javax.swing.JTabbedPane.checkIndex(JTabbedPane.java:1758)
    at javax.swing.JTabbedPane.removeTabAt(JTabbedPane.java:932)
    at supg2sv10.ListenerFourni.actionPerformed(ListenerFourni.java:58)
    at javax.swing.AbstractButton.fireActionPerformed(AbstractButton.java:2012)
    at javax.swing.AbstractButton$Handler.actionPerformed(AbstractButton.java:2335)
    at javax.swing.DefaultButtonModel.fireActionPerformed(DefaultButtonModel.java:404)
    at javax.swing.DefaultButtonModel.setPressed(DefaultButtonModel.java:259)
    at javax.swing.plaf.basic.BasicButtonListener.mouseReleased(BasicButtonListener.java:253)
    at java.awt.Component.processMouseEvent(Component.java:6108)
    at javax.swing.JComponent.processMouseEvent(JComponent.java:3276)
    at java.awt.Component.processEvent(Component.java:5873)
    at java.awt.Container.processEvent(Container.java:2105)
    at java.awt.Component.dispatchEventImpl(Component.java:4469)
    at java.awt.Container.dispatchEventImpl(Container.java:2163)
    at java.awt.Component.dispatchEvent(Component.java:4295)
    at java.awt.LightweightDispatcher.retargetMouseEvent(Container.java:4461)
    at java.awt.LightweightDispatcher.processMouseEvent(Container.java:4125)
    at java.awt.LightweightDispatcher.dispatchEvent(Container.java:4055)
    at java.awt.Container.dispatchEventImpl(Container.java:2149)
    at java.awt.Window.dispatchEventImpl(Window.java:2478)
    at java.awt.Component.dispatchEvent(Component.java:4295)
    at java.awt.EventQueue.dispatchEvent(EventQueue.java:604)
    at java.awt.EventDispatchThread.pumpOneEventForFilters(EventDispatchThread.java:275)
    at java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:200)
    at java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:190)
    at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:185)
    at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:177)
    at java.awt.EventDispatchThread.run(EventDispatchThread.java:138)

  2. #2
    Membre éclairé
    Profil pro
    Inscrit en
    Mai 2007
    Messages
    406
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2007
    Messages : 406
    Par défaut
    java.lang.IndexOutOfBoundsException est une exception qui est élevée lorsque tu dépasses d'un tableau.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    tabbedPane.removeTabAt(4); // l'exception se fait son apparition dans cette ligne
    Je pense que comme pour tous les tableaux, les index commencent à zéro. J'espère ne pas dire de bétise mais essaie plutôt :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    tabbedPane.removeTabAt(3); // Supprimerait le dernier onglet dans ton cas

  3. #3
    Membre averti
    Profil pro
    Inscrit en
    Mai 2008
    Messages
    19
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Mai 2008
    Messages : 19
    Par défaut
    Je ne pense pas vu qu'au départ elle a 4 onglets (0,1,2,3) et qu'elle en rajoute un 4ème (4) par le code qu'elle veut retirer après.

Discussions similaires

  1. [JTabbedPane] close sur onglet
    Par delph1983 dans le forum AWT/Swing
    Réponses: 16
    Dernier message: 21/10/2012, 15h52
  2. JTabbedPane - Désactiver un onglet
    Par aliasjcdenton dans le forum AWT/Swing
    Réponses: 2
    Dernier message: 22/05/2008, 16h06
  3. JTabbedPane: ordonner les onglets
    Par piotrr dans le forum NetBeans
    Réponses: 1
    Dernier message: 18/02/2008, 20h29
  4. [JTabbedPane] changer d'onglet sur clic d'un bouton
    Par lazzeroni dans le forum AWT/Swing
    Réponses: 8
    Dernier message: 26/07/2006, 16h58
  5. [JTabbedPane] Bloquer des onglets
    Par Zanton dans le forum AWT/Swing
    Réponses: 2
    Dernier message: 22/05/2006, 15h52

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