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.
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 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; }
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)
Partager