Bonjour, j'aimerais savoir pourquoi ma fenêtre ne se rafraichit pas
quand je click sur le bouton. Mon counter à beau s'incrémenter, c'est
toujours Étape 1: Le bouton qui s'affiche.
Voici mon code, pro du Java soyez indulgent, c'est mon premier programme en Java. Merci
import javax.swing.*;
import java.awt.*;
import java.awt.event.*;
public class tp1 extends JPanel {
JFrame frame;
JPanel haut;
JPanel main;
JPanel bas;
static int counter;
public tp1(JFrame frame) {
super(new BorderLayout());
this.frame = frame;
haut = ajout_haut();
main = ajout_main();
bas = ajout_bas();
add(haut, BorderLayout.NORTH);
add(main, BorderLayout.CENTER);
add(bas, BorderLayout.SOUTH);
}
private JPanel ajout_haut(){
//Création de mes panels
JPanel haut = new JPanel();
haut.setBackground(Color.WHITE);
//On affiche le texte selon l'étape
if(counter == 1){
//Le boutton
JLabel
titre = new JLabel("<html>Étape 1: Le
bouton<br><br>Pour utiliser...</html>",JLabel.LEFT);
haut.add(titre, BorderLayout.NORTH);
}
else if(counter == 2){
//Le tableau
JLabel
titre = new JLabel("<html>Étape 2: Le
tableau<br><br>Pour utiliser...</html>",JLabel.LEFT);
haut.add(titre, BorderLayout.NORTH);
}
return haut;
}
private JPanel ajout_main() {
//Création de mes panels
JPanel milieu = new JPanel();
//On affiche le texte selon l'étape
if(counter == 1){
//Le boutton
JButton button = new JButton("Cliquez ici pour continuer");
button.setActionCommand( "Continuez");
milieu.add(button, BorderLayout.NORTH);
button.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e)
{
counter++;
new tp1(frame);
return;
}
});
}
return milieu;
}
private JPanel ajout_bas(){
bas = new JPanel();
JLabel etape = new JLabel("Étape "+counter+" / 6",JLabel.CENTER);
bas.add(etape, BorderLayout.NORTH);
return bas;
}
/**
* Create the GUI and show it. For thread safety,
* this method should be invoked from the
* event-dispatching thread.
*/
private static void createAndShowGUI() {
// Décorations pour la fenêtre
JFrame.setDefaultLookAndFeelDecorated(true);
JDialog.setDefaultLookAndFeelDecorated(true);
//Créer et configurer la fenêtre
JFrame frame = new JFrame("Exemples d'utilisations du Java");
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
//Configurer le carré de la fenêtre
Container contentPane = frame.getContentPane();
contentPane.setLayout(new GridLayout(1,1));
contentPane.add(new tp1(frame));
//Display the window.
frame.pack();
frame.setVisible(true);
}
public static void main(String[] args) {
//Schedule a job for the event-dispatching thread:
//creating and showing this application's GUI.
//On met le compteur a 1
counter = 1;
javax.swing.SwingUtilities.invokeLater(new Runnable() {
public void run() {
createAndShowGUI();
}
});
}
}
Merci de votre aide
Jonathan