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

AWT/Swing Java Discussion :

utilser jtextfiels ou jtextarea a partie d'une autre class


Sujet :

AWT/Swing Java

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Nouveau membre du Club
    Inscrit en
    Mars 2007
    Messages
    6
    Détails du profil
    Informations forums :
    Inscription : Mars 2007
    Messages : 6
    Par défaut utilser jtextfiels ou jtextarea a partie d'une autre class
    salut
    j'ai un jtextarea ou un jtextfield dans une class appelé app.java
    et et j'ai une autre class nommé ecrire qui affiche un texte
    je veut par example afficher le texte produit par la class ecrire dans jTextArea de la class app
    j'ai remplacé : private jTextArea par public jTextArea;
    et j'ai ecrit dans la class ecrire:
    app.textArea.setText("texte"); mais ça marche pas
    j'ai besoin de votre aide
    merci

  2. #2
    Membre Expert Avatar de guigui5931
    Profil pro
    Chef de projet NTIC
    Inscrit en
    Avril 2006
    Messages
    1 667
    Détails du profil
    Informations personnelles :
    Âge : 38
    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
    Par défaut
    Quand tu dis que ça ne marche pas, tu as une erreur ou rien ne se passe?tu peux nous montrer ton code complet?

  3. #3
    Nouveau membre du Club
    Inscrit en
    Mars 2007
    Messages
    6
    Détails du profil
    Informations forums :
    Inscription : Mars 2007
    Messages : 6
    Par défaut

    le programme s'execute sans probleme mais quand je click sur le button il affiche rien.
    voici le code de chaque class ce n'ai pas mon projet original c juste un example simple c ca marche ici je peut le faire marcher dans mon projet
    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
     
    import java.awt.BorderLayout;
    import javax.swing.JPanel;
    import javax.swing.JFrame;
    import java.awt.Dimension;
    import javax.swing.JTextField;
    import javax.swing.JButton;
     
    public class app extends JFrame {
     
    	private static final long serialVersionUID = 1L;
    	private JPanel jContentPane = null;
    	public JTextField jTextField = null;
    	private JButton jButton = null;
     
    	/**
             * This is the default constructor
             */
    	public app() {
    		super();
    		initialize();
    	}
     
    	/**
             * This method initializes this
             * 
             * @return void
             */
    	private void initialize() {
    		this.setSize(366, 234);
    		this.setContentPane(getJContentPane());
    		this.setTitle("JFrame");
    	}
     
    	/**
             * This method initializes jContentPane
             * 
             * @return javax.swing.JPanel
             */
    	private JPanel getJContentPane() {
    		if (jContentPane == null) {
    			jContentPane = new JPanel();
    			jContentPane.setLayout(new BorderLayout());
    			jContentPane.add(getJTextField(), BorderLayout.WEST);
    			jContentPane.add(getJButton(), BorderLayout.EAST);
    		}
    		return jContentPane;
    	}
     
    	/**
             * This method initializes jTextField   
             *      
             * @return javax.swing.JTextField       
             */
    	public JTextField getJTextField() {
    		if (jTextField == null) {
    			jTextField = new JTextField();
    			jTextField.setPreferredSize(new Dimension(300, 20));
    		}
    		return jTextField;
    	}
     
    	/**
             * This method initializes jButton      
             *      
             * @return javax.swing.JButton  
             */
    	private JButton getJButton() {
    		if (jButton == null) {
    			jButton = new JButton();
    			jButton.addActionListener(new java.awt.event.ActionListener() {
    				public void actionPerformed(java.awt.event.ActionEvent e) {
    				ecrire ecrit =new ecrire();
    				ecrit.ecriremet();
    				}
    			});
    		}
    		return jButton;
    	}
     
    }
    et voici la class ecrire

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     
    public class ecrire {
      public void ecriremet (){
    	app ap = new app();
    	ap.jTextField.setText("ecrire");
    }
    }

  4. #4
    Membre Expert Avatar de guigui5931
    Profil pro
    Chef de projet NTIC
    Inscrit en
    Avril 2006
    Messages
    1 667
    Détails du profil
    Informations personnelles :
    Âge : 38
    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
    Par défaut
    Le truc c'est que dans ta classe écrire tu créé un nouvel objet app (pas celui qui est affiché. Si tu fais comme ceci tu utilisera le même objet app
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    public class ecrire {
      public void ecriremet (app ap){
    	ap.jTextField.setText("ecrire");
    }
    }
    Et tu l'appelle comme ceci
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    ecrit.ecriremet(this);
    Tu devrais t'intéresser aux conventions de nommage (par exemple tous les noms de classes doivent commencer par une majuscule,...) ça rendrait ton code plus lisible.

  5. #5
    Nouveau membre du Club
    Inscrit en
    Mars 2007
    Messages
    6
    Détails du profil
    Informations forums :
    Inscription : Mars 2007
    Messages : 6
    Par défaut

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    ecrit.ecriremet(this);
    il m'affiche une erreur :
    the method ecritement(app) in the type ecrire is not applicable for the argument new action listnener

    dans tous les cas voici la classe origunal de mon projet;
    c la class ASTread (mon projet est un interpreteur simple du code qui marche bien avec un console mais je veut l'implementer une interface
    tous marche bien sauf (read et write) et voici les class write et read:je veut que l'affichage et le saisie se produise avec un jtextfield ou jtextarea
    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
     
    public class ASTReadStatement extends SimpleNode {
      String name;
     
      ASTReadStatement(int id) {
        super(id);
      }
     
     
      public void interpret()
      {
         Object o;
         byte[] b = new byte[64];
         int i;
     
         if ((o = symtab.get(name)) == null)
            System.err.println("Undefined variable : " + name);
     
         if (o instanceof Boolean)
         {
            System.out.print("Enter a value for \'" + name + "\' (boolean) : ");
            System.out.flush();
            try
            {
               i = System.in.read(b);
               symtab.put(name, new Boolean((new String(b, 0, 0, i - 1)).trim()));
            } catch(Exception e) { System.exit(1); }
         }
         else if (o instanceof Integer)
         {
            System.out.print("Enter a value for \'" + name + "\' (int) : ");
            System.out.flush();
            try
            {
               i = System.in.read(b);
               symtab.put(name, new Integer((new String(b, 0, 0, i - 1)).trim()));
            } catch(Exception e) {
               System.out.println("Exceptio : " + e.getClass().getName());
               System.exit(1);
            }
         }
      }
    }
    et
    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
     
    public class ASTWriteStatement extends SimpleNode {
      String name;
     
      ASTWriteStatement(int id) {
        super(id);
      }
     
     
      public void interpret()
      {
         Object o;
         byte[] b = new byte[64];
     
         if ((o = symtab.get(name)) == null)
            System.err.println("Undefined variable : " + name);
     
         System.out.println("Value of " + name + " : " + symtab.get(name));
      }
     
    }
    et merci

  6. #6
    Membre Expert Avatar de guigui5931
    Profil pro
    Chef de projet NTIC
    Inscrit en
    Avril 2006
    Messages
    1 667
    Détails du profil
    Informations personnelles :
    Âge : 38
    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
    Par défaut
    Comme tu es dans une classe interne this désigne le Listner. Il faudrait pouvoir passer la classe parente en paramètre.
    Tu peux essayer
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    ecrit.ecriremet(super);
    mais je ne suis pas sur du tout que ça fonctionne

Discussions similaires

  1. Réponses: 1
    Dernier message: 03/01/2013, 12h45
  2. utilser le résultat de la requete pour une autre requete
    Par DIDIDIDA dans le forum Macros et VBA Excel
    Réponses: 3
    Dernier message: 11/03/2008, 11h12
  3. Réponses: 4
    Dernier message: 28/11/2007, 16h38
  4. (VB6)Ouvrir une form en mode ajout à parti d'une autre
    Par djancof dans le forum VB 6 et antérieur
    Réponses: 10
    Dernier message: 13/02/2006, 14h40
  5. [JtextArea] Y accéder à partir d'une autre classe
    Par harris_macken dans le forum Composants
    Réponses: 16
    Dernier message: 12/06/2005, 00h27

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