Ecrire ActionListener java pour aller sur le web

Lume51 Messages postés 23 Date d'inscription   Statut Membre Dernière intervention   -  
KX Messages postés 16761 Date d'inscription   Statut Modérateur Dernière intervention   -

Bonsoir à tous, 

Je m'exerce avec Java et je coince sur l'écriture de ActionListener pour déclencher :

  • la connexion à un site (  Framasoft, par ex.)
  • l'ouverture d'un fichier pdf présent dans le PC
  • le lancement d'un programme (Gimp)

J'ai recopié et étudié un grand nombre de projets mais la plupart du temps, ActionListener commande 

System.out.println("XXX");

La commande 

BrowserControl.displayURL("https://framasoft.org/fr"); 

ne semble plus opérante.
 

J'ai longtemps retardé ce courrier car je pensais trouver les solutions...

Je joins le script qui n'est qu'un test :

import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import javax.swing.JMenu;
import javax.swing.JMenuBar;
import javax.swing.JMenuItem;
import javax.swing.JPanel;
import javax.swing.JFrame;


public class TestActions{

   public static void main(String[] args) {

         //création d'une fenêtre JFrame
        JFrame fen=new JFrame("Menu et actions");

         //création d'un panneau (JPanel)
        JPanel panel=new JPanel();
        panel.setLayout(null);
        fen.setSize(500,400);
        fen.setContentPane(panel);

         //création de la barre des menus
        JMenuBar myMenuBar=new JMenuBar();

         //Ajout de la barre de menus au JPanel
        panel.add(myMenuBar);

         //Positionnement de la barre des menus avec la méthode setBounds()
        myMenuBar.setBounds(0, 0, 500, 40);

         //Création du menu Fichier
			 JMenu menuWeb = new JMenu("Web");                        
             JMenu menuPdf = new JMenu("Pdf");
             JMenu menuImage = new JMenu("Images");
        
        //Ajout du menu à la barre des menus
			myMenuBar.add(menuWeb);
            myMenuBar.add(menuPdf);
            myMenuBar.add(menuImage);
            
          // Ajout de sous-menu
           
           // Sous-menu Web
            JMenuItem framasoftItem = new JMenuItem("Framasoft ");
            framasoftItem.addActionListener((event) -> { 
							        }); 
            menuWeb.add(framasoftItem);  
            
            framasoftItem.addActionListener(new ActionListener() { 						
				  @Override
			public void actionPerformed(ActionEvent e) 	{
			 System.out.println("Framasoft");	// Ok
         //BrowserControl.displayURL("https://framasoft.org/fr"); 
         
         
          }
     });       
                                     
             // Sous-menu Pdf    
             JMenuItem homeItem = new JMenuItem("Pdf perso ");
             homeItem.addActionListener((event) -> { 
			   			   			   
							        }); 
             menuPdf.add(homeItem);  
             
             // Sous-menu Images    
             JMenuItem gimpItem = new JMenuItem("Gimp ");
           gimpItem.addActionListener((event) -> {
			      			    
							        }); 
             menuImage.add(gimpItem);          
              
                     
            
         fen.setVisible(true);
              }

   } 
A voir également:

3 réponses

nodens
 

Salut,

avant tout comprendre ce qu'est un ActionListener.

C'est un écouteur d'action qui doit déclencher quelque chose lors d'un événement.

Par exemple un clic(l'événement) sur un bouton(l'object "écouté") déclenche un action, il faut d'abord préciser que c'est un clic qui doit déclencher l'action: une fonction qui dit "fait ceci".

Des exemples par ici:

https://www.delftstack.com/fr/howto/java/add-actionlistener-to-jbutton-in-java/

Cela s'appelle la programmation événementielle. Pas une programmation à part ou un vrai paradigme mais une méthode couramment utilisé dans tous les langages.

Le principe est que l'on place des écouteurs et qu'il vont se déclencher(et déclenhcer une fonction associée) lorsque l'action ciblée est détectée sur l'élément écouté.

Cela va d'utiliser l'interface humain/machine (clavier/souris/etc...) ou des événements de chargement(comme la fin de lecture d'un fichier) ou même des événements plus personnalisés.

0
Lume51 Messages postés 23 Date d'inscription   Statut Membre Dernière intervention   2
 

Bonjour, 

Il me semble avoir compris ce qu'est un ActionListener.

Ma question portait sur l'écriture, la façon d'écrire cette commande en fonction de ce qu'on recherche : sortie sur écran, lien vers le web, lancement d'un programme, etc. La commande variera selon l'action voulue. Tel était ma question.

0
KX Messages postés 16761 Date d'inscription   Statut Modérateur Dernière intervention   3 020
 

Bonjour,

Tu devrais considérer la classe java.awt.Desktop

Par exemple, Desktop.getDesktop().open(myFile); va ouvrir myFile avec l'application par défaut de l'extension correspondante.

Tu pourrais aussi tester la méthode browse pour ouvrir une URL avec le navigateur web par défaut.


0