Bonjour à tous,
j'ai un MultiTimer extends JPanel implements ActionListener dont un bouton ajoute un minuteur : il y a un minuteur par défaut, puis on peut en ajouter via ce bouton (le bouton est en position BorderLayout.SOUTH tandis que les minuteurs que j'ajoute (et qui sont des Timer entends JPanel) viennent s'ajouter en BorderLayout.CENTER) :

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
 
import javax.swing.*;
import java.awt.*;
import java.awt.event.*;
 
public class MultiTimer extends JPanel implements ActionListener{
    JPanel jpCenter;
    public MultiTimer(){
        super();
        this.setLayout(new BorderLayout());
        jpCenter = new JPanel();
        jpCenter.add(new Timer());
        JButton jb = new JButton("Add");
        jb.addActionListener(this);
        this.add(jpCenter,BorderLayout.CENTER);
        this.add(jb,BorderLayout.SOUTH);
    }
    public void actionPerformed(ActionEvent ae){
        jpCenter.add(new Timer());
        // LA JFRAME .pack()
    }
}
Dans mon actionPerformed(...), je souhaite adapter la fenêtre dont ce JPanel est le panneau de contenu à son nouveau contenu ... mais ... comment faire pour récupérer la JFrame correspondante ? (Je pourrais l'ajouter dans les champs de ma classe MultiTimer, mais je me demandais s'il n'y avait pas une méthode, telle la méthode getParent() qui renvoie le container dans lequel on se trouve...

D'avance, merci !