IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

 Java Discussion :

Rafraichissement d'un panel


Sujet :

Java

  1. #1
    Membre confirmé
    Inscrit en
    Octobre 2008
    Messages
    71
    Détails du profil
    Informations forums :
    Inscription : Octobre 2008
    Messages : 71
    Par défaut Rafraichissement d'un panel
    Bonsoir
    j'essaye de crée une application pour ma formation un jeux
    j'essaye de faire l'interface et j'ai un problème au niveau du rafraichissement du JPanel afin de mettre a jour les valeurs des cases a jouer (les cases sont des boutons).
    a chaque clic les valeurs de toutes les cases peuvent changer .
    donc au début du jeux :
    l'utilisateur choisie le niveau de difficulté
    ensuite le jeux commence
    tous fonctionne jusqu'à la
    une fois que le jeux commence des cases s'affiche et a chaque clic les valeurs change
    j'ai initialisé les valeurs des cases a 4.
    quand je clic sur n'importe quel boutons actif je veux que les valeurs passes a 0

    et c'est la ou sa bloc
    le tableau passe mais quand j'essaye de repeindre le panneau pour afficher les nouvelles valeurs. sa bloc
    a mon Avis c'est la dernière classe qui cause problème
    C'est au moment de repeindre les Cases

    Mon code :
    Classe Fenêtre
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    public class Fenetre extends JFrame implements ActionListener {
     
    	static JLabel imageKalah = new JLabel( new ImageIcon( "kalah.gif"));
    	static JPanel conteneurFenetre = new JPanel();
    	private JButton lanch = new JButton(" Commencer ");
        private JComboBox combo = new JComboBox();
        private JLabel label = new JLabel("Difficulté");
        public int tabCase[][]=new int [2][6];
        static JPanel plateau = new JPanel();
     
    	Fenetre(){
     
     
    		// Frame & Panel definition  
     
    		conteneurFenetre.setBackground(Color.WHITE); 
    		conteneurFenetre.setLayout(new BorderLayout());
    		this.setTitle(" Kalah le Jeux ");
    		this.setSize(800, 300);
    		this.setContentPane(conteneurFenetre);
    		this.setLocationRelativeTo(null);
    		this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
    		this.setVisible(true);
     
    		// Panel North
     
    		JPanel top = new JPanel();
    		/*top.setBackground(Color.WHITE); */
            top.add(label);
            combo.addItem("facile");
            combo.addItem("Moyen");
            combo.addItem("Difficile");
            combo.addItem("Démoniaque");
            top.add(combo);
            conteneurFenetre.add(top,BorderLayout.NORTH);
     
            // Panel Center 
     
            conteneurFenetre.add(imageKalah,BorderLayout.CENTER);
     
            // Button South 
     
            JPanel south = new JPanel();
            south.add(lanch);
            conteneurFenetre.add(south,BorderLayout.SOUTH);
     
            // Listen 
            lanch.addActionListener(this);
    	}
     
     
     
    	@Override
    	public void actionPerformed(ActionEvent arg0) {
    		// TODO Auto-generated method stub
    			tabCase=Kalah.tab;
    			conteneurFenetre.remove(imageKalah);
    			int i=6;
    			String tmp="ia";
    			PanelCase panIa = new PanelCase(tmp);
    		    tmp="hu";
    			PanelCase panHm = new PanelCase(tmp);
     
     
    			JPanel pScoreIA = new JPanel();
    			JPanel pScoreHm = new JPanel();
    			JButton scoreIa = new JButton ("IA Score "+i);
    			scoreIa.setEnabled(false);
    			JButton scoreHm = new JButton ("HM Score "+i);
    			pScoreIA.add(scoreIa);
    			pScoreHm.add(scoreHm);
     
     
     
     
    			plateau.setLayout(new BorderLayout());
    			plateau.add(panHm,BorderLayout.SOUTH);
    			plateau.add(panIa,BorderLayout.NORTH);
    			plateau.add(pScoreIA,BorderLayout.WEST);
    			plateau.add(pScoreHm,BorderLayout.EAST);
     
    			conteneurFenetre.add(plateau,BorderLayout.CENTER);
    			//conteneurFenetre.repaint();
    			this.setContentPane(conteneurFenetre);	
     
     
    	}
    }
    Classe Case
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    public class Case extends JButton {
    int numero,valeur,proprio;
     
    public int getNumero() {
    	return numero;
    }
     
    public void setNumero(int numero) {
    	this.numero = numero;
    }
     
     
    Case(int num){
    	numero=num;
     
    }
    }
    Classe Panneau des joueurs
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    public class PanelCase extends JPanel {
    	public static int[][] getTabCase() {
    		return tabCase;
    	}
     
    	public static void setTabCase(int[][] tabCase) {
    		PanelCase.tabCase = tabCase;
    	}
     
    	public static int tabCase[][]=Kalah.tab;
    	private String pro = new String();
    	static Case tab[]= new Case[12];
     //   static  int tour=0;
     
    	PanelCase(String i) {
     
                pro = i;
    		if (pro == "ia") {
    			for (int it = 0; it < 6; it++) {
    				Case loc = new Case(it);
    				loc.setText(""+tabCase[0][it]);
    				tab[it]=loc;
    				loc.setEnabled(false);
    				this.add(loc);
    			}
     
    		}
     
    		else {
     
    			for (int it = 0; it < 6; it++) {
    				Case loc = new Case(it);
    				loc.setText(""+tabCase[1][it]);
    				tab[it+6]=loc;
    				loc.addActionListener(new GameListener());
    				this.add(loc);
    			}
     
    		}
    	}
     
    }
    Classe qui écoute le jeux
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    public class GameListener implements ActionListener {
     
    	@Override
    	public void actionPerformed(ActionEvent arg0) {
    // TODO Auto-generated method stub
    System.out.println("j'ai cliqué sur = "+ ((Case) arg0.getSource()).getNumero());
    int[][] test;
    test=new int [2][6];
    for(int i=0;i<2;i++){
    	for (int j=0;j<6;j++)test[i][j]=0;
    }
    /******************************/
    PanelCase.setTabCase(test);
    Kalah.fr.conteneurFenetre.remove(Fenetre.plateau);
    try {
        Thread.sleep(10);
    } catch (InterruptedException e) {
        // TODO Auto-generated catch block
        e.printStackTrace();
    }
     
    for (Case s : PanelCase.tab)s.repaint();
    Fenetre.conteneurFenetre.add(Fenetre.plateau,BorderLayout.CENTER);
    }
    c'est la Classe GameListener qui cause problème a mon avis

  2. #2
    Membre confirmé
    Inscrit en
    Octobre 2008
    Messages
    71
    Détails du profil
    Informations forums :
    Inscription : Octobre 2008
    Messages : 71
    Par défaut
    j'ai corrigé l'erreur
    c le JButton qu'il faut repeindre et non le JPanel même si le JButton se trouve dans le JPanel

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. rafraichissement d'un panel
    Par gentil dans le forum Composants
    Réponses: 1
    Dernier message: 15/12/2008, 16h46
  2. [C# + GDI]Panel transparent:Pb de rafraichissement
    Par Wolverin dans le forum Windows Forms
    Réponses: 9
    Dernier message: 26/06/2007, 10h57
  3. Rafraichissement Label ou Panel ?
    Par titor dans le forum AWT/Swing
    Réponses: 5
    Dernier message: 13/12/2006, 11h09
  4. Probleme de rafraichissement d'un panel de plusieurs compo.
    Par lilou77 dans le forum Interfaces Graphiques en Java
    Réponses: 5
    Dernier message: 08/12/2005, 13h51
  5. [JPanel] Forcer le rafraichissement d'un sous panel
    Par tomca dans le forum Agents de placement/Fenêtres
    Réponses: 4
    Dernier message: 18/05/2005, 16h49

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo