Bonjour à tous,
j'ai téléchargé le la librairie Substance.jar que j'ai intégré dans mon projet NetBeans normalement.
Dans le main de ma forme je set le look and feel avec :
Tout fonctionne normalement, le skin est affiché.public static void main(String args[]) {
UIManager.setLookAndFeel(new SubstanceBusinessBlackSteelLookAndFeel());
JFrame.setDefaultLookAndFeelDecorated(true);
JDialog.setDefaultLookAndFeelDecorated(true);
SwingUtilities.invokeLater(new Runnable() {
public void run() {
Form f=new Form();
f.setVisible(true);
}
});
}
J'ai un bouton sur ma forme qui, lorsqu'il est clické, instancie un thread :
je clique dessus et là l'exception suivante est affichée:
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7 private void connection_button_connectActionPerformed(java.awt.event.ActionEvent evt) { //SwingUtilities.invokeLater(new ConnectionThread()); ConnectionThread th=new ConnectionThread(); // ConnectionThread implemente Runnable, dans son contructeur elle instancie un thread et le start }
En gros ce que j'ai compris c'est que l'évenement du bouton devait être géré par le Event Dispath Thread alors j'ai remplacé la création de mon thread par l'instruction que j'ai masquée i.e. : SwingUtilities.invokeLater(). Cett fois-ci mon thread s'est lancé (il a fait ce qu'il avait à faire) mais j'ai toujours les mêmes messages d'erreur.
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
17org.jvnet.lafwidget.UiThreadingViolationException: Component state change must be done on Event Dispatch Thread at org.jvnet.lafwidget.LafWidgetUtilities.testComponentStateChangeThreadingViolation(LafWidgetUtilities.java:589) at org.jvnet.lafwidget.animation.FadeStateListener$1.stateChanged(FadeStateListener.java:232) at javax.swing.DefaultButtonModel.fireStateChanged(DefaultButtonModel.java:333) at javax.swing.DefaultButtonModel.setEnabled(DefaultButtonModel.java:192) at javax.swing.AbstractButton.setEnabled(AbstractButton.java:2065) at design.ConnectionThread.run(ConnectionThread.java:20) at java.lang.Thread.run(Thread.java:619) Exception in thread "connection_thread" org.jvnet.lafwidget.UiThreadingViolationException: Component state change must be done on Event Dispatch Thread at org.jvnet.lafwidget.LafWidgetUtilities.testComponentStateChangeThreadingViolation(LafWidgetUtilities.java:589) at org.jvnet.lafwidget.animation.FadeStateListener$1.stateChanged(FadeStateListener.java:232) at javax.swing.DefaultButtonModel.fireStateChanged(DefaultButtonModel.java:333) at javax.swing.DefaultButtonModel.setEnabled(DefaultButtonModel.java:192) at javax.swing.AbstractButton.setEnabled(AbstractButton.java:2065) at design.ConnectionThread.run(ConnectionThread.java:20) at java.lang.Thread.run(Thread.java:619)
Mon programme a toujours bien marché avant que je ne rajoute ce Look and Feel. Aidez-moi svp à résoudre ce problème, j'ai longtemps cherché avant de vous écrire.







Répondre avec citation




Partager