Bonjour tt l monde, mon programme instancie une Jframe contenant un JtabbedPane qui a son tour contient un JPanel , mon souhait c'est d'instancier un nouveau onglet dans le JtabbedPane a partir d'un Jbutton ( ADD qui est dans le JPanel du premier onglets )


Ma Classe JFrame
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
/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */
 
package supg2sv10;
 
import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JPanel;
import javax.swing.JScrollPane;
import javax.swing.JTabbedPane;
import javax.swing.JTable;
import javax.swing.table.DefaultTableModel;
 
/**
 *
 * @author amine
 */
public class MyFrame extends JFrame {
 
    protected JTabbedPane tabbedPane;
    private JPanel panel1;
    private JPanel panel2;
    private  JButton btnAdd;
    private  JButton btnDelete;
    private  JButton btnEdit;
    private JTable table;
    private JScrollPane scrollPane;
    private DefaultTableModel modelTable;
    private JPanel testPanel;
 
 
    public MyFrame() {
        super();
        this.setTitle("SUPG2S");
        this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
        this.setSize(700, 500);
        //this.setLayout(null);
        this.setContentPane(getTabbedPane());
    }
 
    private JTabbedPane getTabbedPane(){
         if (tabbedPane==null)
         {
            this.tabbedPane = new JTabbedPane();
            tabbedPane.add("Fournisseur", getPanel1());
         }    
        return tabbedPane;
    }
    private JPanel getPanel1(){
        if (panel1 ==null){      
           panel1 = new JPanel();
           panel1.setLayout(null);
           btnAdd = new JButton("Add");
           btnDelete = new JButton("Delete");
           btnEdit = new JButton("Edit");
           ListenerFourni listenAdd = new ListenerFourni(1);
           ListenerFourni listenDelete = new ListenerFourni(2);
           ListenerFourni listenEdit = new ListenerFourni(3);
           btnAdd.addActionListener(listenAdd);
           btnDelete.addActionListener(listenDelete);
           btnEdit.addActionListener(listenEdit);
           btnAdd.setBounds(580, 50, 90, 40);
           btnDelete.setBounds(580, 100, 90, 40);
           btnEdit.setBounds(580, 150, 90, 40);
           panel1.add(btnAdd, null);
           panel1.add(btnDelete);
           panel1.add(btnEdit);
           modelTable = new DefaultTableModel();
           table = new JTable(modelTable);
           scrollPane = new JScrollPane(table);
           scrollPane.setBounds(30, 30, 530, 385);
           panel1.add(scrollPane);
 
        }
          return panel1;
    }
 
 
    private JPanel getPanel2(){
        if (panel2 ==null){      
           panel2 = new JPanel();
           panel2.setLayout(null);
           btnAdd = new JButton("Add");
           btnDelete = new JButton("Delete");
           btnEdit = new JButton("Edit");
           ListenerClient listenAdd = new ListenerClient(1);
           ListenerClient listenDelete = new ListenerClient(2);
           ListenerClient listenEdit = new ListenerClient(3);
           btnAdd.addActionListener(listenAdd);
           btnDelete.addActionListener(listenDelete);
           btnEdit.addActionListener(listenEdit);
           btnAdd.setBounds(580, 50, 90, 40);
           btnDelete.setBounds(580, 100, 90, 40);
           btnEdit.setBounds(580, 150, 90, 40);
           panel2.add(btnAdd, null);
           panel2.add(btnDelete);
           panel2.add(btnEdit);
           modelTable = new DefaultTableModel();
           table = new JTable(modelTable);
           scrollPane = new JScrollPane(table);
           scrollPane.setBounds(30, 30, 530, 385);
           panel2.add(scrollPane);
 
        }
          return panel2;
    }   
 
}


Pour séparer tout ce qui est Vue du Traitement j'ai crée une classe a part Listener relatif a chaque JPanel (c'est une bonne idée?).


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
/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */
 
package supg2sv10;
 
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
 
 
/**
 *
 * @author amine
 */
public class ListenerFourni implements ActionListener {
 
    private int n;
 
    public ListenerFourni(int n) {
        this.n = n;
    }
 
 
 
    public void actionPerformed(ActionEvent ev) {
        if (n==1)
        {System.out.println("add fourni");
        // c'est la ou je voudrai ajouté ma panel2 (methode getPanel2) dans mon     JTabbedPane
         }
 
        if (n==2)
        {System.out.println("delete fourni");}
        if (n==3)
        {System.out.println("edit fourni");}
    }
 
}

Merci pour votre aide