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

avec Java Discussion :

SetText d'un JTextField à partir d'une classe externe


Sujet :

avec Java

  1. #1
    Membre du Club
    Profil pro
    Inscrit en
    Janvier 2007
    Messages
    206
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2007
    Messages : 206
    Points : 62
    Points
    62
    Par défaut SetText d'un JTextField à partir d'une classe externe
    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);
      }
    }
    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);
    	}
    }
    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 ?

  2. #2
    Membre chevronné Avatar de guigui5931
    Profil pro
    Chef de projet NTIC
    Inscrit en
    Avril 2006
    Messages
    1 667
    Détails du profil
    Informations personnelles :
    Âge : 37
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Chef de projet NTIC
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Avril 2006
    Messages : 1 667
    Points : 2 232
    Points
    2 232
    Par défaut
    Si je comprend bien tu veux affecter un texte à ton JTextfield Texte. C'est bien ça?
    Si c'est le cas il faut que tu fasse
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    Texte.setText("le texte");

  3. #3
    Membre averti Avatar de Tux++
    Étudiant
    Inscrit en
    Avril 2008
    Messages
    281
    Détails du profil
    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Avril 2008
    Messages : 281
    Points : 379
    Points
    379
    Par défaut
    Et si tu veux le faire à partir d'une classe externe tu crées un setter dans ta classe qui contient le JTextField

Discussions similaires

  1. Accéder à un UIElement à partir d'une classe externe
    Par tom741 dans le forum Windows Presentation Foundation
    Réponses: 2
    Dernier message: 02/12/2009, 20h51
  2. Parser un controle à partir d'une classe externe
    Par zooffy dans le forum ASP.NET
    Réponses: 17
    Dernier message: 31/03/2009, 12h07
  3. Probleme affichage Clip addchild à partir d'une classe externe
    Par Niokizou dans le forum ActionScript 3
    Réponses: 3
    Dernier message: 23/04/2008, 15h53
  4. Réponses: 6
    Dernier message: 21/05/2006, 20h37
  5. Réponses: 12
    Dernier message: 03/11/2005, 18h45

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