Schémas classes Swing
Latest Updates: swing RSS
-
Schémas Classes Swing
admin
-
ActionListener: écouteur événements JButton
admin
Comment placer un écouteur sur un JButton ?
Les composants Swing de type JButton peuvent recevoir un écouteur d’événement pour détecter les actions accomplis sur ce bouton. Pour ce faire, Swing propose l’interface actionListener. Cette interface dispose d’une méthode nommée actionPerformed qui détermine comment l’interface graphique doit réagir s’il l’on presse sur un JButton disposant d’un écouteur.
Dans cet exemple, je place un écouteur d’événement dans les deux JButton, ensuite je détermine la source de l’événement grâce) la méthode getActionCommand. Cette méthode (getActionCommand) renvoi le label du JButton appelé par cette méthode. La méthode getActionCommand peut être fort pratique lorsque notre interface graphique possède plusieurs JButton, et que l’on souhaite savoir précisément quel JButton à été pressé par l’utilisateur, par exemple. Identifier la source d’un événement, quel est le composant dans notre fenêtre qui a déclenché une action.
Je commence par crée une classe que je nomme Main (à ne pas confondre avec la méthode main faisant office de porte d’entrée d’un programme java), je place la méthode main classique dans ma classe Main. Ceci afin de bien distinguer mes classes.
Image ActionListener sur JButton:

package actionListener; // imports des classes utiles pour placer un écouteur d'événements sur un JButton import java.awt.event.ActionEvent; import java.awt.event.ActionListener; import java.awt.Container; import java.awt.FlowLayout; import javax.swing.JButton; import javax.swing.JFrame; public class Main { public static void main(String[] args){ Fenetre fen = new Fenetre(); } } class Fenetre extends JFrame { Fenetre(){ JButton bouton1 = new JButton("bouton 1"); JButton bouton2 = new JButton("bouton 2"); setSize(400,200); setTitle("Ma fenetre"); setVisible(true); Container contenu = getContentPane(); // la méthode getContentPane renvoie le contenu de notre JFrame contenu.add(bouton1); contenu.add(bouton2); contenu.setLayout(new FlowLayout()); // FlowLayout assemble les composant en "float" (l'un après l'autre) bouton1.addActionListener(new EcouteurBouton()); bouton2.addActionListener(new EcouteurBouton()); } } class EcouteurBouton implements ActionListener { // on implemente l'interface ActionListener, et on surcharge la méthode ActionPerformed() @Override public void actionPerformed(ActionEvent arg0) { String label = arg0.getActionCommand(); // la méthode getActionCommand nous renvoi le label du JButton qui déclenche l'événement. System.out.println("coucou, il s'agit d'un événement sur " + label); } } -
Comment mettre écouteur événements dans Jframe, gestion clicks
admin
Différentes technique pour placer un écouteur d’événement dans une JFrame. Un écouteur d’événement est un objet qui implémente l’interface MouseListener, ou qui utilise la classe MouseAdapter. La classe MouseAdapter, contrairement à l’interface MouseListener, peut être instanciée car non abstraite. L’interface MouseListener étant une interface, par nature elle ne peut être instanciée et ne sert qu’à délivrer différentes méthodes à associer à un écouteur.
Il existe plusieurs manières de mettre un écouteur d’événements dans une JFrame. On peut soit placer cette écouteur d’événements dans la JFrame même, ou créer une classe à part qui soit implémentera l’interface MouseListener, soit en déclarant la classe « extends MouseAdapter ».
Voici une manière de placer un écouteur d’événements dans une JFrame en 3 classes. Une classe Fenêtre qui représente la fenêtre JFrame, une classe Ecouteur qui représente l’objet de type MouseListener que l’on associera à notre fenêtre, et enfin une classe Main qui appel la fenêtre crée avec son écouteur d’événements.
Nous allons associer 2 écouteurs d’événements à cette fenêtre JFrame. Un premier écouteur se trouve dans la classe Ecouteur, dans le constructeur de la classe de type Ecouteur. Le deuxième écouteur d’événements est dans créée dans la classe EcouteurSouris qui se trouve insérée dans la classe Fenêtre.
package Swing; import java.awt.event.MouseAdapter; import java.awt.event.MouseEvent; import java.awt.event.MouseListener; public class Ecouteur extends MouseAdapter{ public void mouseClicked(MouseEvent e) { System.out.println("Click" ); } }Classe Fenetre qui représente notre Fenetre, notre Jframe
package Swing; import java.awt.event.MouseAdapter; import java.awt.event.MouseEvent; import javax.swing.JFrame; public class Fenetre extends JFrame { Fenetre (){ setSize(600,250); setVisible(true); setTitle("salut"); addMouseListener(new EcouteurSouris()); } class EcouteurSouris extends MouseAdapter { // cette classe utilise MouseAdapter pour associer un écouteur d'événements à notre JFrame, sans qu'il soit nécessaire de redéfinir toute les méthodes. public void mouseClicked(MouseEvent e){ System.out.println("reclick"); } } }Classe Main qui sers à appeler nos autres classes du package
package Swing; import javax.swing.*; import java.awt.event.*; public class Main { public static void main (String[] args){ Fenetre fen = new Fenetre (); fen.addMouseListener(new Ecouteur()); // méthode addMouseListener qui sert à associer un écouteur d'événements à notre objet cotnenu dans la variabe fen } } -
Gui: Fenêtre avec écouteur événement (Swing)
admin
Introduction à Swing: créer une fenêtre et lui associer un écouteur d’événement.
Swing est composé de nombreuses classes Java qui permettent de créer des interfaces graphiques pour les programmes.Voici une introduction en douceur dans laquelle on construit une première fenêtre, à laquelle on donne un écouteur d’événements ( dans notre cas, un écouteur d’événements lié à l’utilisation de la souris), et nous affiche des informations à la console par rapport aux événements rencontrés
Image du résultat attendu
package GuiTests; import java.awt.event.MouseEvent; import java.awt.event.MouseListener; import javax.swing.JFrame; public class Test extends JFrame implements MouseListener { // constructeur de notre classe Test public Test(){ setVisible(true); // méthode qui rend la fenêtre visible setTitle("Première fenêtre"); // un titre pour notre fenêtre setBounds(10, 400, 600, 400); // méthode setBounds qui permet de définir une taille de fenêtre addMouseListener(this); // on ajoute un objet de type MouseListener. Celui-ci dispose des méthodes // qui permettent de gérer les évenement pour cette exemple de code } // implémentation des méthodes contenu dans l'interface MouseListener, comme MouseListener est une classe abstraite // on doit redéfinir les méthodes qui la composent, ou alors déclarer abstraite la classe qui implémente MouseListener public void mouseClicked (MouseEvent ev){ int x = ev.getX(); // get y et get x permettent de récupérer les coordonées de l'événement int y = ev.getY(); System.out.println(" clic dans fenêtre au points de coordonées " + x +", " + y);// nous indique les coordonées du click } public void mousePressed (MouseEvent ev){// méthode abstraite redéfinie } public void mouseExited (MouseEvent ev){// méthode abstraite redéfinie } public void mouseEntered (MouseEvent ev){// méthode abstraite redéfinie } public void mouseReleased(MouseEvent arg0) {// méthode abstraite redéfinie } public static void main(String[] args){ // on appel la fenêtre via la méthode main Test fen2 = new Test(); fen2.setVisible(true); } }
