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

M88fly 11 Messages postés vendredi 20 février 2015Date d'inscription 2 mars 2015 Dernière intervention - 21 févr. 2015 à 12:43 - Dernière réponse : Twinuts 5261 Messages postés dimanche 4 mai 2003Date d'inscriptionModérateurStatut 20 avril 2018 Dernière intervention
- 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 !
Afficher la suite 

2 réponses

Répondre au sujet
Twinuts 5261 Messages postés dimanche 4 mai 2003Date d'inscriptionModérateurStatut 20 avril 2018 Dernière intervention - 2 mars 2015 à 10:06
+1
Utile
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();

Cette réponse vous a-t-elle aidé ?  
Commenter la réponse de Twinuts
Shadorc 42 Messages postés jeudi 19 septembre 2013Date d'inscription 9 mai 2015 Dernière intervention - 28 févr. 2015 à 01:25
0
Utile
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é !
Commenter la réponse de Shadorc

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.