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

 Java Discussion :

Retourner dans le main une valeur obtenue dans ActionPerformed


Sujet :

Java

  1. #1
    Membre habitué
    Homme Profil pro
    Étudiant
    Inscrit en
    Octobre 2013
    Messages
    326
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Opérateur de télécommunications

    Informations forums :
    Inscription : Octobre 2013
    Messages : 326
    Points : 156
    Points
    156
    Par défaut Retourner dans le main une valeur obtenue dans ActionPerformed
    Bonjour,

    Mon problème se situe dans le titre, j'aimerai retourner dans mon main, une valeur que je trouve dans la méthode ActionPerformed, voici les codes :

    FenetreConnexion.java :
    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
    82
    83
    84
    85
    86
    87
    88
    89
    90
    91
    92
    93
    94
    95
    96
    97
    98
    99
    100
    101
    102
    103
    104
    105
    106
    107
    108
    109
    110
    111
    112
    113
    114
    115
    116
    117
    118
    119
    120
    121
    package stockmanager;
     
    import java.awt.BorderLayout;
    import java.awt.Color;
    import java.awt.Dimension;
    import java.awt.GridBagConstraints;
    import java.awt.GridBagLayout;
    import java.awt.GridLayout;
    import java.awt.Image;
    import java.awt.Insets;
    import java.awt.event.ActionEvent;
    import java.awt.event.ActionListener;
    import java.awt.event.MouseAdapter;
    import java.awt.event.MouseEvent;
    import java.sql.Connection;
    import java.sql.ResultSet;
    import java.sql.SQLException;
    import java.sql.Statement;
     
    import javax.swing.ImageIcon;
    import javax.swing.JButton;
    import javax.swing.JFrame;
    import javax.swing.JLabel;
    import javax.swing.JPanel;
    import javax.swing.JTextField;
     
    public class FenetreConnexion extends JFrame implements ActionListener
    {	
    	ResultSet resultat = null;
     
    	private JPanel container = new JPanel();
    	private JPanel panCont = new JPanel();
     
    	private JLabel logoSoft = new JLabel(new ImageIcon("logo.png"));
    	private JLabel logoEntreprise = new JLabel(new ImageIcon("logo_Kode.png"));
     
    	private JTextField txtLogin = new JTextField("",15);
    	private JTextField txtPass = new JTextField("",15);
     
    	private JLabel labelLogin = new JLabel("Login :");
    	private JLabel labelPass = new JLabel("Mot de passe :");
     
    	private JButton boutonConnexion = new JButton("Connexion");
     
    	public String FenetreConnexion()
    	{
                String Fonction;
                // Paramètres de base pour la fenêtre
                this.setTitle("Fenêtre de connexion de StockManager");
                this.setSize(1000, 760);
                container.setBackground(Color.WHITE);
                this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
                this.setLocationRelativeTo(null);
     
                container.setLayout(new GridBagLayout());
     
                GridBagConstraints gbc = new GridBagConstraints();
     
                gbc.gridx = 1;
                gbc.gridy = 0;
                gbc.weightx = 0.3;
                gbc.weighty = 0.2;
                container.add(logoSoft, gbc);
     
                [....]
     
                // Les champs si dessous seront égaux en taille
                txtLogin.setPreferredSize(txtPass.getPreferredSize());
                txtLogin.setMinimumSize(txtPass.getMinimumSize());
                labelLogin.setPreferredSize(labelPass.getPreferredSize());
                labelLogin.setMinimumSize(labelPass.getMinimumSize());
     
                boutonConnexion.addActionListener(this);
     
                this.setContentPane(container);
                this.setBackground(Color.WHITE);
                this.setResizable(true);
                this.setVisible(true);
     
                return Fonction;
    	}
     
    	public JTextField getTxtLoginField(){
    		return txtLogin;
    	}
     
    	public JTextField getTxtPassField(){
    		return txtPass;
    	}
     
            @Override
    	public void actionPerformed(ActionEvent e) 
            {
                Object source = e.getSource();
                if (source.equals(boutonConnexion))
                {
                    try {
                        DataBaseConnection dbc = new DataBaseConnection();
                        Connection con = dbc.connectDataBase();
                        Statement req;
                        req = con.createStatement();
                        ResultSet reqTotale = req.executeQuery("SELECT Login, MotDePasse, Fonction FROM `activedirectory` WHERE Login= '"+txtLogin.getText()+"' AND MotDePasse = '"+txtPass.getText()+"'");
     
                        while (reqTotale.next())
                        {
                            System.out.println(reqTotale.getString(1));
                            System.out.println(reqTotale.getString(2));
                            System.out.println(reqTotale.getString(3));
     
                            if (reqTotale.getString(1).equals(txtLogin.getText()) && reqTotale.getString(2).equals(txtPass.getText()))
                            {                            
                                /* JE VEUX RETOURNER reqTotale.getString(3) QUI VAUT NORMALEMENT LA FONCTION QUI EST ASSOCIEE AU LOGIN/MDP*/
                            }
                        }    
                    }
                    catch (SQLException e1)
                    {
                    }
                }	
    	}
    }
    Le main :
    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
     
    package stockmanager;
     
    import ...
     
    public class StockManager {
     
        public static void main(String[] args) throws Exception {
     
        // Listes //////////////////////////////////////////////
        List listCategories = new ArrayList();
        Map listInfos = new TreeMap();
        List<Produit> listProduits = new ArrayList<Produit>();
        ///////////////////////////////
     
        // Creation des tableaux à l'ouverture ///////////////////
        EnumCategorie openListcategorie = new EnumCategorie();
        listCategories = openListcategorie.createListeCategorie();
        System.out.println(listCategories);
     
        EnumInfos openListInfos = new EnumInfos();
        listInfos = openListInfos.createListeInfos();
        System.out.println(listInfos);
     
        EnumProduits openListProduits = new EnumProduits();
        listProduits = openListProduits.createListeProduits();
        System.out.println(listProduits);
        //////////////////////////////////////////     
        // TEST !!!!!!! /////////////////////////////////
        /*EnumCategorie categorie2 = new EnumCategorie();
        categorie2.addCategory("Sand",500);
        
        EnumCategorie categorie3 = new EnumCategorie();
        categorie3.deleteCategory("Sandwich");
           
        EnumCategorie categorie3 = new EnumCategorie();
        categorie3.deleteCategory("Sandw");*/
     
        ////////////////////////////////////////////////     
        // IHM  ////////////////////////////////////////  
        FenetreConnexion fc = new FenetreConnexion();
        ////////////////////////////////////////////////   
      }
     
    }
    Merci d'avance pour votre aide !

    PS : Mon niveau en java est bien loin de l'excellence, cependant je ne recherche pas la maintenabilité et l'amélioration du soft.

  2. #2
    Modérateur
    Avatar de kolodz
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Avril 2008
    Messages
    2 211
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 36
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Produits et services télécom et Internet

    Informations forums :
    Inscription : Avril 2008
    Messages : 2 211
    Points : 8 316
    Points
    8 316
    Billets dans le blog
    52
    Par défaut
    Il t'es possible d’accéder à l'objet this de la class FenetreConnexion via le code suivant :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    @Override
    	public void actionPerformed(ActionEvent e) 
            {
                 // Du code ici....
                 FenetreConnexion.this.maMethode(maValeur);
             }
    Cela ne te permet pas de retrouver directement la valeur dans le main. (Cela sera à la charge de l'objet en question de le faire.)

    Cordialement,
    Patrick Kolodziejczyk.
    Si une réponse vous a été utile pensez à
    Si vous avez eu la réponse à votre question, marquez votre discussion
    Pensez aux FAQs et aux tutoriels et cours.

  3. #3
    Membre habitué
    Homme Profil pro
    Étudiant
    Inscrit en
    Octobre 2013
    Messages
    326
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Opérateur de télécommunications

    Informations forums :
    Inscription : Octobre 2013
    Messages : 326
    Points : 156
    Points
    156
    Par défaut
    Merci pour ta réponse, cependant, je ne peux pas utiliser actionPerformed pour le faire. Est-ce que je dois créer une méthode comme setFonction pour que je puisse retourner la valeur où y-a-t'il un autre moyen ?

  4. #4
    Modérateur
    Avatar de kolodz
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Avril 2008
    Messages
    2 211
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 36
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Produits et services télécom et Internet

    Informations forums :
    Inscription : Avril 2008
    Messages : 2 211
    Points : 8 316
    Points
    8 316
    Billets dans le blog
    52
    Par défaut
    Sachant que FenetreConnexion.this te permet d’accéder au variable privée de ton objet. (Car tu te trouve dans ton objet.) Tu peux directement affecté une variable.

    Après il t'es possible de remplacer ton :


    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     @Override
    	public void actionPerformed(ActionEvent e) 
            {
    		// ton traitement...
    	}
    Par :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
     @Override
    	public void actionPerformed(ActionEvent e) 
            {
    		Object source = e.getSource();
    		if (source.equals(boutonConnexion))
    		{
                		FenetreConnexion.this.processConnection();
    		}
    	}
    Qui lui fera l'ensemble du travail. Ce qui isole la partie métier de ta partie IHM.

    Cordialement,
    Patrick Kolodziejczyk.
    Si une réponse vous a été utile pensez à
    Si vous avez eu la réponse à votre question, marquez votre discussion
    Pensez aux FAQs et aux tutoriels et cours.

  5. #5
    Membre habitué
    Homme Profil pro
    Étudiant
    Inscrit en
    Octobre 2013
    Messages
    326
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Opérateur de télécommunications

    Informations forums :
    Inscription : Octobre 2013
    Messages : 326
    Points : 156
    Points
    156
    Par défaut
    Avec FenetreConnexion.this j'ai accès aux variables comme labelLogin etc je n'ai pas accès à reqTotale.getString()

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
     @Override
    	public void actionPerformed(ActionEvent e) 
            {
    		Object source = e.getSource();
    		if (source.equals(boutonConnexion))
    		{
                		FenetreConnexion.this.processConnection();
    		}
    	}
    Je créé une nouvelle classe qui s'appelle processConnection (ou autre) en mettant le code au préalable dans actionPerformed ?

  6. #6
    Modérateur
    Avatar de kolodz
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Avril 2008
    Messages
    2 211
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 36
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Produits et services télécom et Internet

    Informations forums :
    Inscription : Avril 2008
    Messages : 2 211
    Points : 8 316
    Points
    8 316
    Billets dans le blog
    52
    Par défaut
    Car reqTotale est une variable local de la fonction actionPerformed.
    Si une réponse vous a été utile pensez à
    Si vous avez eu la réponse à votre question, marquez votre discussion
    Pensez aux FAQs et aux tutoriels et cours.

Discussions similaires

  1. requête retournant une valeur utilisable dans du code
    Par sanouphil dans le forum Oracle
    Réponses: 2
    Dernier message: 18/11/2010, 11h52
  2. Réponses: 5
    Dernier message: 11/10/2007, 12h29
  3. Réponses: 2
    Dernier message: 22/05/2007, 16h15
  4. Joindre une valeur arbitraire dans un SELECT
    Par Tuxxy dans le forum Requêtes
    Réponses: 3
    Dernier message: 20/01/2004, 17h04
  5. Passer une valeur Null dans un argument de procédure
    Par preempalver dans le forum VBA Access
    Réponses: 5
    Dernier message: 30/12/2003, 20h52

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