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

Messages postés
11
Date d'inscription
vendredi 20 février 2015
Dernière intervention
2 mars 2015
- 21 févr. 2015 à 12:43 - Dernière réponse :
Messages postés
5293
Date d'inscription
dimanche 4 mai 2003
Statut
Modérateur
Dernière intervention
19 novembre 2018
- 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 

Votre réponse

2 réponses

Meilleure réponse
Messages postés
5293
Date d'inscription
dimanche 4 mai 2003
Statut
Modérateur
Dernière intervention
19 novembre 2018
2 mars 2015 à 10:06
1
Merci
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();

Merci Twinuts 1

Avec quelques mots c'est encore mieux Ajouter un commentaire

Codes Sources a aidé 92 internautes ce mois-ci

Commenter la réponse de Twinuts
Messages postés
42
Date d'inscription
jeudi 19 septembre 2013
Dernière intervention
9 mai 2015
28 févr. 2015 à 01:25
0
Merci
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.