Bonjour,
J'ai un programme depuis lequel je peux lancer une aide qui s'ouvre dans une deuxième fenêtre (un navigateur internet de l'api DJ NATIVE SWING).
Mon soucis et que lorsque j'ouvre puis quitte cette aide, et que je re clique sur le bouton pour l'ouvrir de nouveau, un paquet d'erreur apparaît. Ca ne doit pas aimer que je start() le thread plusieurs fois je suppose.
Voici les erreurs :
Voici ma classe qui s'occupe du navigateur :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11 Exception in thread "AWT-EventQueue-0" java.lang.IllegalThreadStateException at java.lang.Thread.start(Thread.java:682) at fr.DAD.pdfSpliter.Interface.itemMenuDocumentationActionPerformed(Interface.java:275) at fr.DAD.pdfSpliter.Interface.access$600(Interface.java:22) at fr.DAD.pdfSpliter.Interface$9.actionPerformed(Interface.java:157) at javax.swing.AbstractButton.fireActionPerformed(AbstractButton.java:2018) at javax.swing.AbstractButton$Handler.actionPerformed(AbstractButton.java:2341) at javax.swing.DefaultButtonModel.fireActionPerformed(DefaultButtonModel.java:402) at javax.swing.DefaultButtonModel.setPressed(DefaultButtonModel.java:259) at javax.swing.AbstractButton.doClick(AbstractButton.java:376) (...)
J'instancie depuis un Evénement sur un bouton d'une autre classe simplement par:
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 public class Faq extends Thread{ private JPanel panel; private final JWebBrowser webBrowser; CocDad tool = new CocDad(); public Faq(){ panel = new JPanel(new BorderLayout()); JPanel webBrowserPanel = new JPanel(new BorderLayout()); webBrowser = new JWebBrowser(JWebBrowser.destroyOnFinalization()); webBrowser.navigate("file:///"+tool.log.getPathPdf()+"Faq/Manuel.html"); webBrowser.setBarsVisible(false); webBrowser.setButtonBarVisible(false); webBrowser.setMenuBarVisible(false); webBrowserPanel.add(webBrowser, BorderLayout.CENTER); panel.add(webBrowserPanel, BorderLayout.CENTER); UIUtils.setPreferredLookAndFeel(); NativeInterface.open(); } @Override public void run() { JFrame frame = new JFrame("F.A.Q COC-PDF"); frame.setLocation(10, 10); frame.setDefaultCloseOperation(JFrame.DISPOSE_ON_CLOSE); frame.getContentPane().add(panel, BorderLayout.CENTER); frame.setSize(1050,900); frame.setLocationByPlatform(true); frame.setVisible(true); if(!frame.isEnabled()) { NativeInterface.close(); Thread.currentThread().interrupt(); } } }
faq.start();
Voilà je pense que je ferme mal mon thread alors quand je re clique sur le bouton et que "faq.start()" est appelé de nouveau, ben ça coince.
si quelqu'un avait une idée de comment faire.
Je vous remercie d'avance pour vos éventuelles réponses
Partager