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 :

Plusieurs ActionListener


Sujet :

avec Java

  1. #1
    Membre régulier
    Profil pro
    Technicien Informatique
    Inscrit en
    Février 2006
    Messages
    187
    Détails du profil
    Informations personnelles :
    Localisation : France, Haut Rhin (Alsace)

    Informations professionnelles :
    Activité : Technicien Informatique

    Informations forums :
    Inscription : Février 2006
    Messages : 187
    Points : 89
    Points
    89
    Par défaut Plusieurs ActionListener
    Bonjour à tous !

    Mon code fonctionne à savoir que j'ai plusieurs boutons qui doivent servir à se connecter à des sites web distincts
    mais dans mon code tous les boutons ouvrent un seul et même site ... j'en deduis donc qu'il faudrait un action listener pour chaque bouton
    pourriez vous svp m'indiquer quel serait le meilleur moyen de procéder pour y parvenir ?

    En vous remerciant pour vos conseils

    Jean-Marc


    Code Java : 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
    import java.awt.*;
    import java.awt.event.ActionEvent;
    import java.awt.event.ActionListener;
    import java.io.IOException;
    import java.net.URI;
     
    import javax.swing.*;
     
    public class MaFenetre extends JFrame implements ActionListener {
        MaFenetre() {
     
            Container contenu = getContentPane();
            contenu.setLayout(new FlowLayout(FlowLayout.CENTER, 10, 15));
            JButton B = new JButton(" GOOGLE");
            B.setSize(100, 100);
            B.setVisible(true);
            contenu.add(B);
            B.addActionListener(this);
     
            JButton B2 = new JButton("FORUM");
            B2.setVisible(true);
            B2.setSize(100, 150);
            contenu.add(B2);
            B2.addActionListener(this);
            JLabel lab = new JLabel(new ImageIcon("d:/logo_xxx.png"));
            lab.setVisible(true);
            lab.setSize(100, 100);
            contenu.add(lab);
        }
     
        public static void main(String ars[]) {
            MaFenetre F = new MaFenetre();
            F.setSize(500, 500);
            F.setTitle(" Bienvenue sur le site ");
            F.setVisible(true);
        }
     
        public void actionPerformed(ActionEvent e) {
     
            String nom = e.getActionCommand();
            System.out.println("Vous allez être redirigé vers Google...");
            URI uri = URI.create("<a href="http://www.google.fr" target="_blank">http://www.google.fr</a>");
            try {
                Desktop.getDesktop().browse(uri);
            } catch (IOException e1) {
                e1.printStackTrace();
            }
     
        }
    }
    Jean Marc

  2. #2
    Membre confirmé Avatar de hugoclo
    Profil pro
    Inscrit en
    Décembre 2007
    Messages
    615
    Détails du profil
    Informations personnelles :
    Âge : 48
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations forums :
    Inscription : Décembre 2007
    Messages : 615
    Points : 480
    Points
    480
    Par défaut
    Salut,
    non pas obligatoirement.
    Il te suffit de faire un choix sur la source:
    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
    public void actionPerformed(ActionEvent e) {
     if(e.getSource == butgoogle){
            System.out.println("Vous allez être redirigé vers Google...");
            URI uri = URI.create("<a href="http://www.google.fr" target="_blank">http://www.google.fr</a>");
    		}		
    if(e.getSource == buttoto){
    System.out.println("Vous allez être redirigé vers toto...");
            URI uri = URI.create("<a href="http://www.toto.fr" target="_blank">http://www.toto.fr</a>");
    }
            try {
                Desktop.getDesktop().browse(uri);
            } catch (IOException e1) {
                e1.printStackTrace();
            }
     
        }
    Lorsque le sage montre la lune du doigt l'idiot regarde le doigt.

  3. #3
    Modérateur
    Avatar de joel.drigo
    Homme Profil pro
    Ingénieur R&D - Développeur Java
    Inscrit en
    Septembre 2009
    Messages
    12 430
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 54
    Localisation : France, Paris (Île de France)

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

    Informations forums :
    Inscription : Septembre 2009
    Messages : 12 430
    Points : 29 131
    Points
    29 131
    Billets dans le blog
    2
    Par défaut
    Salut,

    Tu peux utiliser la commande du bouton (tu la récupères d'ailleurs dans le actionListener, mais tu ne l'a pas initialisée et tu ne l'utilises pas.

    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
    import java.awt.*;
    import java.awt.event.ActionEvent;
    import java.awt.event.ActionListener;
    import java.io.IOException;
    import java.net.URI;
     
    import javax.swing.*;
     
    public class MaFenetre extends JFrame implements ActionListener {
        MaFenetre() {
     
            ...
     
            JButton googleButton = new JButton("GOOGLE");
            googleButton.setActionCommand("http://www.google.fr");
            googleButton.addActionListener(this);
     
            JButton forumButton = new JButton("FORUM");
            forumButton.setActionCommand("http://www.developpez.net/forums");
            forumButton.addActionListener(this);
     
        }
     
        ... 
     
        public void actionPerformed(ActionEvent e) {
     
            String command = e.getActionCommand();
            URI uri = URI.create(command);
            try {
                Desktop.getDesktop().browse(uri);
            } catch (IOException e1) {
                e1.printStackTrace();
            }
     
        }
    }
    Notes que tu peux faire en Java8 :

    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 MaFenetre extends JFrame {
        MaFenetre() {
     
            Container contenu = getContentPane();
            contenu.setLayout(new FlowLayout(FlowLayout.CENTER, 10, 15));
            JButton googleButton = new JButton("GOOGLE");
            googleButton.setSize(100, 100);
            googleButton.setVisible(true);
            contenu.add(googleButton);
            googleButton.addActionListener( (e) -> browseURI(e, "Vous allez être rédirigé vers Google...","http://www.google.fr") );
     
            JButton forumButton = new JButton("FORUM");
            forumButton.setVisible(true);
            forumButton.setSize(100, 150);
            contenu.add(forumButton);
            forumButton.addActionListener( (e) -> browseURI(e, "Vous allez être rédirigé vers Developpez...","http://www.developpez.net/forums") );
            JLabel lab = new JLabel(new ImageIcon("d:/logo_xxx.png"));
            lab.setVisible(true);
            lab.setSize(100, 100);
            contenu.add(lab);
        }
     
        private Object browseURI(ActionEvent e, String message, String uri) {
            System.out.println(message);
            try {
                Desktop.getDesktop().browse(URI.create(uri));
            } catch (IOException e1) {
                e1.printStackTrace();
            }
    		return null;
    	}
     
     
    	public static void main(String ars[]) {
            MaFenetre fenetre = new MaFenetre();
            fenetre.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
            fenetre.setSize(500, 500);
            fenetre.setTitle(" Bienvenue sur le site ");
            fenetre.setVisible(true);
     
        }
     
    }
    L'expression "ça marche pas" ne veut rien dire. Indiquez l'erreur, et/ou les comportements attendus et obtenus, et donnez un Exemple Complet Minimal qui permet de reproduire le problème.
    La plupart des réponses à vos questions sont déjà dans les FAQs ou les Tutoriels, ou peut-être dans une autre discussion : utilisez la recherche interne.
    Des questions sur Java : consultez le Forum Java. Des questions sur l'EDI Eclipse ou la plateforme Eclipse RCP : consultez le Forum Eclipse.
    Une question correctement posée et rédigée et vous aurez plus de chances de réponses adaptées et rapides.
    N'oubliez pas de mettre vos extraits de code entre balises CODE (Voir Mode d'emploi de l'éditeur de messages).
    Nouveau sur le forum ? Consultez Les Règles du Club.

Discussions similaires

  1. Plusieurs actionlistener pour un même bouton
    Par ssirde dans le forum Débuter
    Réponses: 3
    Dernier message: 17/02/2011, 13h43
  2. une fenetre , un ActionListener, plusieurs Objects
    Par dark&wise dans le forum AWT/Swing
    Réponses: 5
    Dernier message: 19/01/2007, 00h25
  3. comment gerer plusieurs connexions client/serveur
    Par naili dans le forum C++Builder
    Réponses: 3
    Dernier message: 14/08/2002, 16h58
  4. Génerer automatiquement plusieurs fichier .doc
    Par brunovitch dans le forum QuickReport
    Réponses: 3
    Dernier message: 09/07/2002, 08h19
  5. Shortcut avec plusieurs touches
    Par scorpiwolf dans le forum C++Builder
    Réponses: 4
    Dernier message: 06/07/2002, 15h57

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