Changer de panel apres un certain temps [Résolu]

Signaler
Messages postés
11
Date d'inscription
vendredi 20 février 2015
Statut
Membre
Dernière intervention
2 mars 2015
-
Messages postés
5363
Date d'inscription
dimanche 4 mai 2003
Statut
Modérateur
Dernière intervention
30 avril 2021
-
Bonjour,

J'ai un petit projet à réaliser et j'aimerai savoir comment peut-on changer de panel au cours du temps ? Quelle méthode utiliser ? Svp

Merci beaucoup !

2 réponses

Messages postés
5363
Date d'inscription
dimanche 4 mai 2003
Statut
Modérateur
Dernière intervention
30 avril 2021
110
Salut,

Sinon autre solution, utiliser les Layouts proposés par Java exemple ici avec un CardLayout.

(J'ai repris le code proposé par Shadorc)
final JFrame frame = new JFrame("Ma fenêtre");
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);

final JPanel panel1 = new JPanel();
panel1.add(new JLabel("Mon premier panel"));

final JPanel panel2 = new JPanel();
panel2.add(new JLabel("Mon deuxième panel"));

final JPanel cards = new JPanel(new CardLayout());
cards.add(panel1, "panel1");
cards.add(panel2, "panel2");
frame.setContentPane(cards);
frame.pack();
frame.setVisible(true);

final Timer timer = new Timer(1000, new ActionListener() {
  @Override
  public void actionPerformed(final ActionEvent arg0) {
    final CardLayout cl = (CardLayout) (cards.getLayout());
    cl.show(cards, "panel2");
  }
});
timer.start();

Messages postés
42
Date d'inscription
jeudi 19 septembre 2013
Statut
Membre
Dernière intervention
9 mai 2015

Bonjour !

J'imagine que ton panel est contenu dans une JFrame, si c'est le cas tu peux faire cela par exemple,

JFrame frame = new JFrame("Ma fenêtre");
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);

JPanel panel1 = new JPanel();
panel1.add(new JLabel("Mon premier panel"));

JPanel panel2 = new JPanel();
panel2.add(new JLabel("Mon deuxième panel"));

frame.setContentPane(panel1);
frame.pack();
frame.setVisible(true);

Timer timer = new Timer(1000, new ActionListener() {
@Override
public void actionPerformed(ActionEvent arg0) {
frame.remove(frame.getContentPane());
frame.setContentPane(panel2);
frame.getContentPane().revalidate();
frame.getContentPane().repaint();
}
});
timer.start();


Le timer te permet d'effectuer une action au bout d'un certain temps :
Le premier argument est le temps en ms que le timer va attendre avant d'effectuer ce qui se trouve dans actionPerformed().
Ici, au bout d'une seconde, on enlève le panel1 de la fenêtre, on ajoute le panel2 et on actualise la fenêtre.

Pour plus d'informations sur la classe Timer :
http://docs.oracle.com/javase/7/docs/api/javax/swing/Timer.html

J'espère t'avoir aidé !