salut
mes comment faire car moi je n'y arrive pas et j'ai essayer beaucoup de chose
salut
mes comment faire car moi je n'y arrive pas et j'ai essayer beaucoup de chose
A un moment dans la méthode run de ton thread, tu dois avoir :
où truc est un String.
Code : Sélectionner tout - Visualiser dans une fenêtre à part webbrowser.setHtmlContent( truc );
Tu fais à la place :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6 final String ftruc = truc; SwingUtilities.invokeLater(new Runnable() { public void run() { webbrowser.setHtmlContent(ftruc); } });
L'expression "ça marche pas" ne veut rien dire. Indiquez l'erreur, et/ou les comportements attendus et obtenus, et donnez un Exemple Complet Minimal qui permet de reproduire le problème.
La plupart des réponses à vos questions sont déjà dans les FAQs ou les Tutoriels, ou peut-être dans une autre discussion : utilisez la recherche interne.
Des questions sur Java : consultez le Forum Java. Des questions sur l'EDI Eclipse ou la plateforme Eclipse RCP : consultez le Forum Eclipse.
Une question correctement posée et rédigée et vous aurez plus de chances de réponses adaptées et rapides.
N'oubliez pas de mettre vos extraits de code entre balises CODE (Voir Mode d'emploi de l'éditeur de messages).
Nouveau sur le forum ? Consultez Les Règles du Club.
merci encore ca marche mes
il y un problème est le premier clique effectuer pour lire un mail marche
mes le second clique génère une erreur que voici :
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
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126 run: 707 value change=0 value change=0 type1 de pop3---multipart/alternative; boundary="=_312ebfc4edcbb127fe639655dc61ef43" method msg related method msg related i=0 method msg related i=1 type1 de pop3---multipart/alternative; boundary="b1_7b4caccac7d32799b65a776d5b6c27ae" method msg related method msg related i=0 method msg related i=1 value change=0 value change=0 Exception in thread "AWT-EventQueue-0" java.lang.IllegalStateException: The native component cannot be removed then re-added to a component hierarchy! To allow such reparenting, the component must be created with the "destroyOnFinalization" constructor option. at chrriis.dj.nativeswing.swtimpl.core.SWTNativeComponent.throwDuplicateCreationException(SWTNativeComponent.java:856) at chrriis.dj.nativeswing.swtimpl.core.SWTNativeComponent.addNotify(SWTNativeComponent.java:871) at java.awt.Container.addNotify(Container.java:2769) at javax.swing.JComponent.addNotify(JComponent.java:4741) at java.awt.Container.addNotify(Container.java:2769) at javax.swing.JComponent.addNotify(JComponent.java:4741) at java.awt.Container.addNotify(Container.java:2769) at javax.swing.JComponent.addNotify(JComponent.java:4741) at java.awt.Container.addNotify(Container.java:2769) at javax.swing.JComponent.addNotify(JComponent.java:4741) at java.awt.Container.addNotify(Container.java:2769) at javax.swing.JComponent.addNotify(JComponent.java:4741) at java.awt.Container.addNotify(Container.java:2769) at javax.swing.JComponent.addNotify(JComponent.java:4741) at java.awt.Container.addImpl(Container.java:1114) at java.awt.Container.add(Container.java:410) at newpackage.liremessage.<init>(liremessage.java:139) at newpackage.message.mouseClicked(message.java:76) at java.awt.AWTEventMulticaster.mouseClicked(AWTEventMulticaster.java:270) at java.awt.Component.processMouseEvent(Component.java:6508) at javax.swing.JComponent.processMouseEvent(JComponent.java:3320) at java.awt.Component.processEvent(Component.java:6270) at java.awt.Container.processEvent(Container.java:2229) at java.awt.Component.dispatchEventImpl(Component.java:4861) at java.awt.Container.dispatchEventImpl(Container.java:2287) at java.awt.Component.dispatchEvent(Component.java:4687) at java.awt.LightweightDispatcher.retargetMouseEvent(Container.java:4832) at java.awt.LightweightDispatcher.processMouseEvent(Container.java:4501) at java.awt.LightweightDispatcher.dispatchEvent(Container.java:4422) at java.awt.Container.dispatchEventImpl(Container.java:2273) at java.awt.Window.dispatchEventImpl(Window.java:2719) at java.awt.Component.dispatchEvent(Component.java:4687) at java.awt.EventQueue.dispatchEventImpl(EventQueue.java:735) at java.awt.EventQueue.access$200(EventQueue.java:103) at java.awt.EventQueue$3.run(EventQueue.java:694) at java.awt.EventQueue$3.run(EventQueue.java:692) at java.security.AccessController.doPrivileged(Native Method) at java.security.ProtectionDomain$1.doIntersectionPrivilege(ProtectionDomain.java:76) at java.security.ProtectionDomain$1.doIntersectionPrivilege(ProtectionDomain.java:87) at java.awt.EventQueue$4.run(EventQueue.java:708) at java.awt.EventQueue$4.run(EventQueue.java:706) at java.security.AccessController.doPrivileged(Native Method) at java.security.ProtectionDomain$1.doIntersectionPrivilege(ProtectionDomain.java:76) at java.awt.EventQueue.dispatchEvent(EventQueue.java:705) at java.awt.EventDispatchThread.pumpOneEventForFilters(EventDispatchThread.java:242) at java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:161) at java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:150) at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:146) at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:138) at java.awt.EventDispatchThread.run(EventDispatchThread.java:91) value change=17 value change=17 Exception in thread "AWT-EventQueue-0" java.lang.IllegalStateException: The native component cannot be removed then re-added to a component hierarchy! To allow such reparenting, the component must be created with the "destroyOnFinalization" constructor option. at chrriis.dj.nativeswing.swtimpl.core.SWTNativeComponent.throwDuplicateCreationException(SWTNativeComponent.java:856) at chrriis.dj.nativeswing.swtimpl.core.SWTNativeComponent.addNotify(SWTNativeComponent.java:871) at java.awt.Container.addNotify(Container.java:2769) at javax.swing.JComponent.addNotify(JComponent.java:4741) at java.awt.Container.addNotify(Container.java:2769) at javax.swing.JComponent.addNotify(JComponent.java:4741) at java.awt.Container.addNotify(Container.java:2769) at javax.swing.JComponent.addNotify(JComponent.java:4741) at java.awt.Container.addNotify(Container.java:2769) at javax.swing.JComponent.addNotify(JComponent.java:4741) at java.awt.Container.addNotify(Container.java:2769) at javax.swing.JComponent.addNotify(JComponent.java:4741) at java.awt.Container.addNotify(Container.java:2769) at javax.swing.JComponent.addNotify(JComponent.java:4741) at java.awt.Container.addImpl(Container.java:1114) at java.awt.Container.add(Container.java:410) at newpackage.liremessage.<init>(liremessage.java:139) at newpackage.message.mouseClicked(message.java:76) at java.awt.AWTEventMulticaster.mouseClicked(AWTEventMulticaster.java:270) at java.awt.Component.processMouseEvent(Component.java:6508) at javax.swing.JComponent.processMouseEvent(JComponent.java:3320) at java.awt.Component.processEvent(Component.java:6270) at java.awt.Container.processEvent(Container.java:2229) at java.awt.Component.dispatchEventImpl(Component.java:4861) at java.awt.Container.dispatchEventImpl(Container.java:2287) at java.awt.Component.dispatchEvent(Component.java:4687) at java.awt.LightweightDispatcher.retargetMouseEvent(Container.java:4832) at java.awt.LightweightDispatcher.processMouseEvent(Container.java:4501) at java.awt.LightweightDispatcher.dispatchEvent(Container.java:4422) at java.awt.Container.dispatchEventImpl(Container.java:2273) at java.awt.Window.dispatchEventImpl(Window.java:2719) at java.awt.Component.dispatchEvent(Component.java:4687) at java.awt.EventQueue.dispatchEventImpl(EventQueue.java:735) at java.awt.EventQueue.access$200(EventQueue.java:103) at java.awt.EventQueue$3.run(EventQueue.java:694) at java.awt.EventQueue$3.run(EventQueue.java:692) at java.security.AccessController.doPrivileged(Native Method) at java.security.ProtectionDomain$1.doIntersectionPrivilege(ProtectionDomain.java:76) at java.security.ProtectionDomain$1.doIntersectionPrivilege(ProtectionDomain.java:87) at java.awt.EventQueue$4.run(EventQueue.java:708) at java.awt.EventQueue$4.run(EventQueue.java:706) at java.security.AccessController.doPrivileged(Native Method) at java.security.ProtectionDomain$1.doIntersectionPrivilege(ProtectionDomain.java:76) at java.awt.EventQueue.dispatchEvent(EventQueue.java:705) at java.awt.EventDispatchThread.pumpOneEventForFilters(EventDispatchThread.java:242) at java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:161) at java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:150) at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:146) at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:138) at java.awt.EventDispatchThread.run(EventDispatchThread.java:91) BUILD SUCCESSFUL (total time: 15 seconds)
Apparemment, tu retires le composant JWebBrowser de son container puis tu le remets ensuite... Pourquoi ?
En tout cas, il y a un message qui dit qu'il ne faut le faire que si on utilise une option lors de sa construction (voir doc pour plus de précision) :
The native component cannot be removed then re-added to a component hierarchy! To allow such reparenting, the component must be created with the "destroyOnFinalization" constructor option.
L'expression "ça marche pas" ne veut rien dire. Indiquez l'erreur, et/ou les comportements attendus et obtenus, et donnez un Exemple Complet Minimal qui permet de reproduire le problème.
La plupart des réponses à vos questions sont déjà dans les FAQs ou les Tutoriels, ou peut-être dans une autre discussion : utilisez la recherche interne.
Des questions sur Java : consultez le Forum Java. Des questions sur l'EDI Eclipse ou la plateforme Eclipse RCP : consultez le Forum Eclipse.
Une question correctement posée et rédigée et vous aurez plus de chances de réponses adaptées et rapides.
N'oubliez pas de mettre vos extraits de code entre balises CODE (Voir Mode d'emploi de l'éditeur de messages).
Nouveau sur le forum ? Consultez Les Règles du Club.
salut
je crois avoir trouver le problème est la solution
l'erreur était que j'avais instancier JWebBrowser juste avant le constructeur :
voici ma solution dit moi si je me trompe
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3 public class liremessage extends javax.swing.JFrame implements Runnable, Printable { static JWebBrowser webBrowser = new JWebBrowser();
ça marche un peu mieux si instancier JWebBrowser dans le constructeur
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14 public class liremessage extends javax.swing.JFrame implements Runnable, Printable { static JWebBrowser webBrowser; // static contenu_message f = new contenu_message(); public static JComponent createContent() { JPanel contentPane = new JPanel(new BorderLayout()); JPanel webBrowserPanel = new JPanel(new BorderLayout()); // webBrowserPanel.setBorder(BorderFactory.createTitledBorder("Native Web Browser component")); webBrowser = new JWebBrowser(); webBrowser.setSize(500, 500); webBrowser.setBarsVisible(false);
dite moi si j'ai faut ou si il y a une meilleur solution ?
Disons que c'est une solution admissible (s'il n'y avait pas de variable statique, je serais plus satisfait, par exemple), puisque là, tu auras une nouvelle instance à chaque appel de createContent(). Vérifie quand même dans la doc s'il n'y a pas quelque chose à faire de spécial, comme libérer des ressources, sur l'instance de JWebBrowser.
L'expression "ça marche pas" ne veut rien dire. Indiquez l'erreur, et/ou les comportements attendus et obtenus, et donnez un Exemple Complet Minimal qui permet de reproduire le problème.
La plupart des réponses à vos questions sont déjà dans les FAQs ou les Tutoriels, ou peut-être dans une autre discussion : utilisez la recherche interne.
Des questions sur Java : consultez le Forum Java. Des questions sur l'EDI Eclipse ou la plateforme Eclipse RCP : consultez le Forum Eclipse.
Une question correctement posée et rédigée et vous aurez plus de chances de réponses adaptées et rapides.
N'oubliez pas de mettre vos extraits de code entre balises CODE (Voir Mode d'emploi de l'éditeur de messages).
Nouveau sur le forum ? Consultez Les Règles du Club.
salut
des fois j'ai du mal a suivre car débutant
mes comment peu ton libérer des ressource de JWEBROWSER.
sinon je suppose que vous avez une meilleur solution
alors quelle est la votre ?
merci
Je t'ai dit de regarder dans la doc : je ne vais quand même pas le faire à ta place !
L'expression "ça marche pas" ne veut rien dire. Indiquez l'erreur, et/ou les comportements attendus et obtenus, et donnez un Exemple Complet Minimal qui permet de reproduire le problème.
La plupart des réponses à vos questions sont déjà dans les FAQs ou les Tutoriels, ou peut-être dans une autre discussion : utilisez la recherche interne.
Des questions sur Java : consultez le Forum Java. Des questions sur l'EDI Eclipse ou la plateforme Eclipse RCP : consultez le Forum Eclipse.
Une question correctement posée et rédigée et vous aurez plus de chances de réponses adaptées et rapides.
N'oubliez pas de mettre vos extraits de code entre balises CODE (Voir Mode d'emploi de l'éditeur de messages).
Nouveau sur le forum ? Consultez Les Règles du Club.
re salut
y a t-il une autre solution que d'instancier JWEBROUWSER dans le constructeur
es-que c'est possible de ce passer de static pour JWEBROWSER
pour qu'il soie accessible de n'importe ou dans la class
Le constructeur de quoi ? Dans le code que tu montres, le JWebBrowser est instancié dans la méthode createContent, qui n'est pas un constructeur. Donc, oui, tu peux l'instancier ici.
Au sujet des static, je voulais dire simplement qu'il faut toujours éviter de les utiliser, voire ne jamais les utiliser. On peut toujours s'en passer, excepté pour les constantes éventuellement. En tout cas, pour les variables, toujours préférer ne pas faire de variables static, ça évite justement d'avoir une variable qui a la même valeur dans plusieurs instances. Dans ton cas, si tu voulais pouvoir afficher plusieurs mails en même temps (chacun dans sa JFrame), tu aurais probablement des problèmes. Toutes les variables manipulées par l'instance de JFrame peuvent être non static, et être accessibles de toutes ses méthodes. Les méthodes aussi devraient l'être (non static). Tu peux afficher un mail en faisant new MailFrame( mail ), ou mail est soit un moyen d'obtenir le texte du mail, soit le texte du mail directement : ensuite, dans le constructeur, ou dans une méthode createContent() appelée par le constructeur, tu crées ton instance de JWebBrowser et tu y injectes le texte du mail. Dans mon exemple, j'utilise MailFrame comme nom de classe : toi, tu as appelée cette classe liremessage. Il y a des conventions en java, et l'une d'elles dit que les noms de classe doivent commencer par une majuscules (le but est de s'y retrouver un peu plus facilement quand on lit du code) : mieux écrire le nom en UpperCamelCase (dans ton cas ça donnerait LireMessage).
L'expression "ça marche pas" ne veut rien dire. Indiquez l'erreur, et/ou les comportements attendus et obtenus, et donnez un Exemple Complet Minimal qui permet de reproduire le problème.
La plupart des réponses à vos questions sont déjà dans les FAQs ou les Tutoriels, ou peut-être dans une autre discussion : utilisez la recherche interne.
Des questions sur Java : consultez le Forum Java. Des questions sur l'EDI Eclipse ou la plateforme Eclipse RCP : consultez le Forum Eclipse.
Une question correctement posée et rédigée et vous aurez plus de chances de réponses adaptées et rapides.
N'oubliez pas de mettre vos extraits de code entre balises CODE (Voir Mode d'emploi de l'éditeur de messages).
Nouveau sur le forum ? Consultez Les Règles du Club.
salut
je tiens a te remercie pour ton aide précieuse
merci merci et remercie.
merci car je ne pense pas qu'il était possible d'utiliser en java des composant
graphique de si bonne qualité en tous cas 10 fois mieux que les JEDITORPANE.
merci d'avoir pris la peine de m'aider
et remercie.
Partager