Bonjour à tous,
Peut-être déja abordé, mais non retrouvé dans le forum... mon 2° post donc milles excuses pour l'usage de la recherche
Je débute en Java pour mon projet de fin d'année. Il s'agit d'une application graphique type "distributeur de billets".
Par mon background Delphi et C# j'ai l'habitude d'utiliser des fenêtres modales avec un résultat modal.
J'ai bien trouvé comment dériver un JDialog pour retourner un résultat.
JModalDialog, en gros :
Constantes "modales" :
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 public class JModalDialog extends javax.swing.JDialog { private int modalResult = ModalResult.mrNone; ... private int getModalResult() { return modalResult; } protected void setModalResult(int i) { this.modalResult = i; this.setVisible(false); } ... public int showModal() { this.setSize(new Dimension(648, 510)); this.setLocationRelativeTo(null); this.setVisible(true); return this.getModalResult(); }
Et j'utilise le tout ainsi :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12 public static final int mrNone = 0; public static final int mrOk = 2^0; public static final int mrCancel = 2^1; public static final int mrAbort = 2^2; public static final int mrRetry = 2^3; public static final int mrIgnore = 2^4; public static final int mrYes = 2^5; public static final int mrNo = 2^6; public static final int mrAll = 2^7; public static final int mrNoToAll = 2^8; public static final int mrYesToAll = 2^9;
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4 dlgTest dlg = new dlgTest(); if (dlg.showModal()==Tools.mrOk) myLogger.write("Réussi !");Jusque là tout va bien... maintenant mon problème est que, dans l'optique de "copier" le principe de boutons/fenêtres avec valeur modale...
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4 private void jButton1ActionPerformed(java.awt.event.ActionEvent evt) { this.setModalResult(ModalResult.mrOk); }
1) Créer des boutons type JModalButton qui appelent automatiquement le setModalResult de leur JDialog mère
2) Idéalement proposer une propriété modalResult pour le bouton (cette valeur étant la valeur passée au JDialog)
3) Ajouter enfin ce composant à la palette de NetBeans, et donc accéder à la propriété modalResult dans l'éditeur de GUI
4) le point bonus, comment rendre une constante globale? CAD sans utiliser ModalResult.mrOK mais juste mrOK, j'ai cru comprendre qu'il fallait faire un implements d'une classe abstraite ou ce genre ?
Partager