cs_tweeder
Messages postés172Date d'inscriptionjeudi 30 janvier 2003StatutMembreDernière intervention19 juin 2009
-
11 janv. 2005 à 00:12
toffe12
Messages postés53Date d'inscriptionvendredi 12 septembre 2003StatutMembreDernière intervention23 septembre 2005
-
11 janv. 2005 à 11:47
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
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
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");
toffe12
Messages postés53Date d'inscriptionvendredi 12 septembre 2003StatutMembreDernière intervention23 septembre 20051 11 janv. 2005 à 11:47
Salut le probleme vient du code
button.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
counter++;
new tp1(frame);
return;
}
tu recrees a chaque fois ton panel donc il prend par defaut les valeurs d'init, ecrit comme cela tu risques de faire exploser la memoire car a chaque appel du bouton tu recrees un IHM.