Bonjour,
J'ai beaucoup de difficultées avec le SwingWorker.
Dans ma classe SwingWorker, dans la méthode doInBackground()
je crée un objet, je lui affecte des valeurs, mais le programme ne parvient pas à lire cet objet (alors qu'il est utilisé partout ailleurs sans problème).
dans l'exemple, en debug les set... fonctionnent, l'appel au dao ne fonctionne pas. J'ai ajouté un sysout afin de voir si je pouvais afficher les données de l'objet DocumentSas mais il ne s'affiche pas, le programme passe (comme pour l'appel au dao) dans une classe "FuturTask.class".
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 public class SwCreateDoc extends SwingWorker<List<DocumentSas>, DocumentSas> implements ObsAbleAddDocJt{ ... public SwCreateDoc(List<?> input, Lot lot, JFrame parent, boolean bloc) { ... } @Override protected List<DocumentSas> doInBackground() throws Exception { ... DocumentSas doctmp = new DocumentSas(); doctmp.setIdLotParent(lotAtraiter.getIdLot()); doctmp.setNomDoc("DOC" + System.currentTimeMillis()); doctmp.setDateNumerisation(new Date()); doctmp.setFichierFile(f); System.out.println(doctmp.toString()); // on cree un nouveau document en faisant appel au dao doctmp = daoDoc.create(doctmp); ... } ... }
le get() du SwingWorker lève une exception (que je ne comprend pas).
Je n'arrive pas à trouver le problème. Un simple sysout qui n'affiche pas la valeur demandée alors qu'elle est disponible dans l'objet, comme si l’accès en lecture de cet objet était bloqué.
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 at mim.ihm.traitements.TrtFenNumeris.importDocumentFs(TrtFenNumeris.java:79) at mim.ihm.ihmNg.ControlPrincipNg.actionPerformed(ControlPrincipNg.java:376) at javax.swing.AbstractButton.fireActionPerformed(Unknown Source) at javax.swing.AbstractButton$Handler.actionPerformed(Unknown Source) at javax.swing.DefaultButtonModel.fireActionPerformed(Unknown Source) at javax.swing.DefaultButtonModel.setPressed(Unknown Source) at javax.swing.plaf.basic.BasicButtonListener.mouseReleased(Unknown Source) at java.awt.Component.processMouseEvent(Unknown Source) at javax.swing.JComponent.processMouseEvent(Unknown Source) at java.awt.Component.processEvent(Unknown Source) at java.awt.Container.processEvent(Unknown Source) at java.awt.Component.dispatchEventImpl(Unknown Source) at java.awt.Container.dispatchEventImpl(Unknown Source) at java.awt.Component.dispatchEvent(Unknown Source) at java.awt.LightweightDispatcher.retargetMouseEvent(Unknown Source) at java.awt.LightweightDispatcher.processMouseEvent(Unknown Source) at java.awt.LightweightDispatcher.dispatchEvent(Unknown Source) at java.awt.Container.dispatchEventImpl(Unknown Source) at java.awt.Window.dispatchEventImpl(Unknown Source) at java.awt.Component.dispatchEvent(Unknown Source) at java.awt.EventQueue.dispatchEventImpl(Unknown Source) at java.awt.EventQueue.access$200(Unknown Source) at java.awt.EventQueue$3.run(Unknown Source) at java.awt.EventQueue$3.run(Unknown Source) at java.security.AccessController.doPrivileged(Native Method) at java.security.ProtectionDomain$1.doIntersectionPrivilege(Unknown Source) at java.security.ProtectionDomain$1.doIntersectionPrivilege(Unknown Source) at java.awt.EventQueue$4.run(Unknown Source) at java.awt.EventQueue$4.run(Unknown Source) at java.security.AccessController.doPrivileged(Native Method) at java.security.ProtectionDomain$1.doIntersectionPrivilege(Unknown Source) at java.awt.EventQueue.dispatchEvent(Unknown Source) at java.awt.EventDispatchThread.pumpOneEventForFilters(Unknown Source) at java.awt.EventDispatchThread.pumpEventsForFilter(Unknown Source) at java.awt.EventDispatchThread.pumpEventsForHierarchy(Unknown Source) at java.awt.EventDispatchThread.pumpEvents(Unknown Source) at java.awt.EventDispatchThread.pumpEvents(Unknown Source) at java.awt.EventDispatchThread.run(Unknown Source)
Si quelqu'un a une idée...
Merci.
Partager