Bonsoir,
Je débute actuellement en Java (même si je possède plusieurs acquis en POO, notamment avec DotNET) et je me pose un certain nombre de questions quant aux diverses possibilités d'utilisation de la gestion des évènements avec AWT.
Je débute donc par créer ma fenêtre principale à laquelle j'ajoute divers menus et éventuellement plusieurs boutons. J'aimerais ensuite associer à ces divers composants un Listener. Je sais que s'offre à moi la possibilité d'utiliser soit les Classes Anonymes, léger et efficace, soit de créer une classe pour chaque composant, lourd et non-utilisé je suppose, ou encore d'implémenter l'interface ActionListener à ma classe JFrame.
Exemple :
Ma question est la suivante :
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 public class MainFrame extends JFrame implements ActionListener { /** * Constructor. */ public MainFrame() { InitializeComponent(); } private void InitializeComponent() { desktop = new JDesktopPane(); menuBar = new JMenuBar(); fileMenu = new JMenu("Fichier"); helpMenu = new JMenu("?"); exitMenuItem = new JMenuItem("Quitter"); aboutMenuItem = new JMenuItem("A propos..."); menuBar.add(fileMenu); menuBar.add(helpMenu); fileMenu.add(exitMenuItem); helpMenu.add(aboutMenuItem); setTitle("Javare"); setSize(DEFAULT_DIMENSION); setExtendedState(JFrame.MAXIMIZED_BOTH); setJMenuBar(menuBar); add(desktop, BorderLayout.CENTER); exitMenuItem.addActionListener(this); } public void actionPerformed(ActionEvent e) { if(e.getSource() == exitMenuItem) { System.exit(0); } } /** * Fields. */ private JDesktopPane desktop; private JMenuBar menuBar; private JMenu fileMenu; private JMenu helpMenu; private JMenuItem exitMenuItem; private JMenuItem aboutMenuItem; private static final long serialVersionUID = 0L; private static final Dimension DEFAULT_DIMENSION = new Dimension(500,500); }
Imaginons que je dispose 500 composants dans ma fenêtre et que pour chaque évènement le programme doive comparer, un à un, l'objet e.getSource() avec les composants de ma fenêtre, cette méthode ne serait-elle pas un peu lourde (même si avec les config. le problème ne se pose pas) d'un point vue "lisibilité" et d'un point de vue "perfomance" ?
Quelles sont les alternatives (mis à part l'utilisation des classes internes anonymes qui, pour un certain nombre de composants, rendraient le code totalement illisible) à l'utilisation d'une seule fonction actionPerfomed montrer ci-dessus ? Quelles sont les conseils que vous me donneriez ?
En vous remerciant d'avance,
Nadd.
Partager