Bonsoir tout le monde !
Je suis sur un petit projet et j'ai quelques questions pour lesquelles je n'arrive pas à trouver la solution ...
J'ai une classe StrategoBackground dans laquelle je fais plusieurs réglages de fenêtre, de composants etc ...
Via cette classe, je peut créer une nouvelle fenêtre NewGameFrame proposant un nouveau jeu au joueur.
Cette classe (NewGameFrame) appelle une méthode randomizePiecesPositions d'une autre classe (PlacePieces), forcément, cette méthode intervient sur les attributs de la classe StrategoBackground pour y place des pions.
Lors de l'appel de NewGameFrame dans Stratego Background :
Je passe l'instance courante afin de garder tout les attributs.Code:
1
2
3
4
5
6 public class StrategoBackground extends JFrame{ private void newGameActionPerformed(ActionEvent e){ NewGameFrame newGameFrame = new NewGameFrame(this); } }
Dans la classe NewGameFrame :
Je garde donc l'instance courante de StrategoBackground.Code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16 public class NewGameFrame extends JFrame{ StrategoBackground stb; public NewGameFrame(StrategoBackground stb){ this.stb = stb; initComponents(this.stb); } private void playActionPerformed(ActionEvent e){ // TODO : Methode de random des pions. PlacePieces pp = new PlacePieces(this.stb); if(randomize.isSelected()) pp.randomizePiecesPositions(); } }
Et enfin, dans PlacePieces :
Je n'arrive pas au résultat escompter.Code:
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 public class PlacePieces { StrategoBackground stb; public PlacePieces(StrategoBackground stb){ this.stb = stb; } public void randomizePiecesPositions(){ JLabel battleBackground = stb.getBattleBackground(); Pions tabPions[][] = new Pions[10][10]; for(int l = 0 ; l < 10 ; l++) { for(int c = 0 ; c < 10 ; c++) { /*Creation du tableau de Pions*/ } } //stb.setTabButtons(tabPions); stb.setBattleBackground(battleBackground); System.out.println("ICI : " +stb.getTest()); } }
D'ou viens la perte de mes informations de l'instance courante de StrategoBackground ?
A noter que si j'appele la méthode randomizePiecesPosition *depuis* StrategoBackground, tout fonctionne ...
Des idées ?