Bonjour,
Je suis débutant et un problème me bloque pas mal. Pour m'entrainer à l'utilisation des classes, j'ai créé un petit truc de pokemon (j'ai rien trouvé de plus stupide xD) que je veux adapter avec une interface graphique, mais je n'arrive pas à faire une chose en particulier. Dans ma classe principale, où j'ai mon main(), je mets en place ma fenêtre qui comprend deux boutons et une zone de texte. Le clic sur un bouton appelle une méthode de la classe PokemonGraphic héritant de mon objet Pokemon (il n'ajoute rien , seules les méthodes changent donc je les bougerais dans l'autre classe plus tard puisque pour le coup c'est inutile de faire un héritage). Cette méthode est censée modifier le texte du JTextField de la première classe. Hors je n'y arrive pas. Je veux donc utiliser la méthode setText de JTextField mais ça ne fonctionne pas. Sûrement un problème de déclaration ou d'utilisation des méthodes. Voici les codes de mes deux classes.
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 import javax.swing.*; import java.awt.event.*; import java.awt.*; import rolePlayingGame.PokemonGraphic; class pokemonTrainer2 extends JPanel implements ActionListener { /** * */ private static final long serialVersionUID = 1L; PokemonGraphic tonPokemon = new PokemonGraphic("Johnny"); JButton buttonEntrainer = new JButton("Entrainement"); JButton buttonStatut = new JButton("Statut"); JButton buttonQuitter = new JButton("Quitter"); JTextField Texte= new JTextField(100); JPanel zoneTexte = new JPanel(); JPanel lesBoutons = new JPanel(); pokemonTrainer2() { setLayout(new BorderLayout(5, 5)); lesBoutons.add(buttonEntrainer); lesBoutons.add(buttonStatut); lesBoutons.add(buttonQuitter); zoneTexte.add(Texte); add(lesBoutons, BorderLayout.NORTH); zoneTexte.setPreferredSize(new Dimension(200, 150)); add(zoneTexte, BorderLayout.CENTER); buttonEntrainer.addActionListener(this); buttonStatut.addActionListener(this); buttonQuitter.addActionListener(this); } public void actionPerformed(ActionEvent e) { if (e.getSource() == buttonEntrainer) { tonPokemon.entrainer(Texte); } else if (e.getSource() == buttonStatut) { tonPokemon.voirStatut(Texte); } else if (e.getSource() == buttonQuitter) { } } public static void main(String[] argv) { JFrame monCadre = new JFrame(); monCadre.setContentPane(new pokemonTrainer2()); monCadre.pack(); monCadre.setVisible(true); } }J'ai du pas mal me mélanger les pinceaux et là j'arrive pas à me dépatouiller, donc je sollicite votre aide ^^. Pouvez-vous me remettre sur la bonne piste ?
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 package rolePlayingGame; import javax.swing.JTextField; public class PokemonGraphic extends pokemon { JTextField Texte= new JTextField(100); //Constructeur par défaut : public PokemonGraphic() { super(); } //Constructeur d'initialisation : public PokemonGraphic(String nomChoisi) { race = "inconnu"; nom = nomChoisi; experience = 0; xpmax = 10; niveau = 1; } //***************************************************************************************** // ACCESSEURS ET MUTATEURS //***************************************************************************************** //***************************************************************************************** // METHODES DE CLASSE //***************************************************************************************** public void entrainer(JTextField Texte) { this.experience+=10; this.setText("Bravo, tu as bien entrainé ton pokemon. "+this.nom+" a maintenant "+this.experience+" points d'expérience."); if (experience>=xpmax) { niveau++; xpmax= xpmax * 2 + (experience / 2); this.setText("Bravo, tu as bien entrainé ton pokemon. "+this.nom+" a maintenant "+this.experience+" points d'expérience.\nHey ! "+this.nom+" a augmenté de niveau. Il est maintenant de niveau "+this.niveau+" !"); } } public void voirStatut(JTextField Texte) { this.setText("Nom : "+this.nom+"\nType : "+this.race+"\nNiveau : "+this.niveau+"\nExpérience : "+this.experience+"\nNiveau Suivant : "+this.xpmax); } }
Partager