Bonjour,
Je voudrais vous présenter une petite API que j'ai développé.
myTSwingActions permet une utilisation très simple des Actions Swing avec une simple annotation.
Voici un exemple simple pour illustrer son utilisation :
Soit un code "classique" d'une fenêtre Swing utilisant une Action
On voit bien qu'une grosse partie du code écrit sert à la déclaration et l'implémentation de l'Action. Avec plusieurs actions on se retrouve vite à réécrire encore et encore plusieurs fois le même genre de code.
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 public class MyFrame extends JFrame { private JButton actionButton; private JMenuItem actionMenuItem; public MyFrame() { // Components initialization ... // Building actions Action myAction = new MyAction(); actionButton.setAction(myAction); actionMenuItem.setAction(myAction); } /** A customized Action. */ private final class MyAction extends AbstractAction { MyAction() { // Loading and setting action properties ResourceBundle resources = ...; putValue(NAME; resources.getString("MyAction.name")); putValue(...); } public void actionPerformed(ActionEvent evt) { // In most cases, we want actions to be performed out of the EDT. new Thread() { public void run() { // Do something } }.start(); } } }
Afin de gagner en temps et en lisibilité, l'API myTSwingAction vous propose d'utiliser l'annotation @Action pour ne vous concentrer que sur ce qui vous intéresse vraiment
- Ce que l'action fait vraiment.
- Les composants utilisant l'action.
et vous affranchir de tout le code pompeux de l'implémentation de l'Action.
Voici le code équivalent avec myTSwingActions :
L'API est téléchargeable ici, ou si vous utilisez maven vous pouvez simplement ajouter la dépendance 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 public class MyFrame extends JFrame { @Action("myAction") private JButton actionButton; @Action("myAction") private JMenuItem actionMenuItem; public MyFrame() { // Components initialization ... // Building actions new ActionsManager(this).buildActions(); } /** A customized Action. */ @Action public void myAction() { // Do something } }
Code xml : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5 <dependency> <groupId>com.mytdev</groupId> <artifactId>myt-swing-actions</artifactId> <version>1.2.0</version> </dependency>
Vous trouverez également plus de détails sur les fonctionnalités de l'API ici (en anglais).
N'hésitez pas à me faire vos retour
le y@m's
Partager