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 :

Accéder à des panel créer dans d'autres classes intérieures


Sujet :

avec Java

  1. #1
    Membre régulier Avatar de Chacha35
    Profil pro
    Étudiant
    Inscrit en
    Septembre 2009
    Messages
    264
    Détails du profil
    Informations personnelles :
    Âge : 35
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Septembre 2009
    Messages : 264
    Points : 114
    Points
    114
    Par défaut Accéder à des panel créer dans d'autres classes intérieures
    Bonjour,

    En fait j'ai une classe qui créer des panel et les remplie. Dans cette classe une classe intérieur qui écoute un bouton. Lorsqu'on appuie sur ce bouton un des panel change et on affiche un formulaire.

    J'ai donc une autre classe intérieur qui écoute mon bouton 'submit' pour envoyer le formulaire. Mais les info sont dans les textfield du panel qui à été modifié dans l'autre classe intérieure donc je n'arrive pas à y accéder.

    Voici le code:

    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
     
    import java.awt.*;
    import java.awt.event.ActionEvent;
    import java.awt.event.ActionListener;
    import javax.swing.*;
     
    public class ContactsPanel extends JPanel
    {
     
    	public JPanel Panel1 = new BoxPanel(false);
    	public JPanel Panel2 = new JPanel();
     
    	public ContactsPanel()
    	{
    		setLayout (new BoxLayout(this,BoxLayout.X_AXIS));
     
    		// création de sous panel dans Panel1 et Panel2 avec des éléments à l'intérieur
     
    		this.add(Panel1);
    		this.add(Panel2);
    	}
     
    	class ButtonAddPersonListener  implements ActionListener{
     
            public void actionPerformed(ActionEvent e) 
            {
            	JPanel PanelAddPerson = new BoxPanel(false);
        		PanelAddPerson.setBorder (BorderFactory.createLineBorder(Color.gray,2));
     
        		String[] tab_string = {"First Name", "Last Name", "Phone", "Mobile", "Mail", "Address"};
                JPanel[] tab_panel = new JPanel[tab_string.length];
     
    //boucle qui créer un panel pour chaque label+textfield
                for(int i = 0; i < tab_string.length; i++)
                {
                    tab_panel[i] = new JPanel();
            		JLabel label = new JLabel (tab_string[i]+": ");
            		label.setPreferredSize(new Dimension(100,40));
            		tab_panel[i].add(label);
     
            		if(tab_string[i].compareTo("Address") != 0)
            		{
            			JTextField text = new JTextField (15);
            			tab_panel[i].add(text);
            		}
            		else{
            			JTextArea text = new JTextArea (4,15);
            			tab_panel[i].add(text);
            		}
     
            		PanelAddPerson.add (tab_panel[i]);
            	}	 
    //Ajout du bouton submeit à la fin du formulaire
                JPanel PanelAddPersonSubmit = new JPanel();
        		JButton AddPersonSubmitButton = new JButton ("Submit");
        		AddPersonSubmitButton.addActionListener(new ButtonSubmitAddPersonListener());
        		PanelAddPersonSubmit.add(AddPersonSubmitButton);
        		PanelAddPerson.add (PanelAddPersonSubmit);
     
    //on enlève le panel qui été affiché et on le remplace par celui du formulaire
                MainClass.open.Contacts.remove(2);
        		MainClass.open.Contacts.add(PanelAddPerson, 2);
        	    MainClass.open.tp.repaint();
            }  
        }
     
    	class ButtonSubmitAddPersonListener  implements ActionListener{
     
            public void actionPerformed(ActionEvent e) 
            {
            	Panel2.getComponent(1).
    // je voudrais accéder aux textfield de PanelAddPerson (lui même composé de petits panel : label + textfield)
            }
        }
     
    }
    Merci d'avance pour votre aide.

  2. #2
    Membre chevronné
    Avatar de sovo
    Homme Profil pro
    Développeur Java
    Inscrit en
    Mars 2004
    Messages
    1 389
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Cameroun

    Informations professionnelles :
    Activité : Développeur Java
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mars 2004
    Messages : 1 389
    Points : 1 788
    Points
    1 788
    Par défaut
    Et si tu créais un constructeur a ta 2eme classe (ButtonSubmitAddPersonListener) en lui envoyant en paramètre le panel ou la form ??
    "Toute question a une reponse. Et chaque reponse est une nouvelle question." Albert EINSTEIN

    En cas de Question resolu, n'oubliez pas

  3. #3
    Membre régulier Avatar de Chacha35
    Profil pro
    Étudiant
    Inscrit en
    Septembre 2009
    Messages
    264
    Détails du profil
    Informations personnelles :
    Âge : 35
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Septembre 2009
    Messages : 264
    Points : 114
    Points
    114
    Par défaut
    Merci pour ta réponse.

    En fait je lui est envoyé le tableau de panel.
    Ca marche mieux déjà mais il reste un problème:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    System.out.println (p[i].getComponent(1).getText());
    Il ne reconnait pas getText, j'imagine que c'est parce qu'il ne sais pas que le deuxième composant de mon panel est un textfield.

  4. #4
    Membre chevronné
    Avatar de sovo
    Homme Profil pro
    Développeur Java
    Inscrit en
    Mars 2004
    Messages
    1 389
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Cameroun

    Informations professionnelles :
    Activité : Développeur Java
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mars 2004
    Messages : 1 389
    Points : 1 788
    Points
    1 788
    Par défaut
    normal il ne peut le savoir, c'est a toi de le lui dire. Essai ceci :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    System.out.println (((JTextfield) p[i].getComponent(1)).getText());
    "Toute question a une reponse. Et chaque reponse est une nouvelle question." Albert EINSTEIN

    En cas de Question resolu, n'oubliez pas

  5. #5
    Membre régulier Avatar de Chacha35
    Profil pro
    Étudiant
    Inscrit en
    Septembre 2009
    Messages
    264
    Détails du profil
    Informations personnelles :
    Âge : 35
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Septembre 2009
    Messages : 264
    Points : 114
    Points
    114
    Par défaut
    C'est parfait. Merci beaucoup!

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

Discussions similaires

  1. Accéder à un objet instancié dans une autre classe
    Par valentin358 dans le forum Langage
    Réponses: 4
    Dernier message: 05/12/2011, 23h31
  2. Réponses: 9
    Dernier message: 15/03/2010, 14h55
  3. Réponses: 1
    Dernier message: 06/05/2009, 15h12
  4. Réponses: 3
    Dernier message: 01/02/2009, 00h05
  5. Utilisation des méthodes de classe dans une autre classe
    Par ChriGoLioNaDor dans le forum C++
    Réponses: 4
    Dernier message: 28/07/2007, 15h10

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