Changer de panel apres un certain temps

Résolu
M88fly
Messages postés
11
Date d'inscription
vendredi 20 février 2015
Statut
Membre
Dernière intervention
2 mars 2015
- 21 févr. 2015 à 12:43
Twinuts
Messages postés
5372
Date d'inscription
dimanche 4 mai 2003
Statut
Modérateur
Dernière intervention
24 mai 2022
- 2 mars 2015 à 10:06
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

Twinuts
Messages postés
5372
Date d'inscription
dimanche 4 mai 2003
Statut
Modérateur
Dernière intervention
24 mai 2022
111
2 mars 2015 à 10:06
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();

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

28 févr. 2015 à 01:25
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é !
0