J'ai une applet que j'ai créée en utilisant NetBeans, appelée AKApplet. Il fonctionne très bien dans l'IDE, mais quand je l'ai mis dans une page web, il jette l'erreur suivante:NoClassDefFoundError dans Java Applet sur invokeLater()
Exception in thread "Thread-15" java.lang.NoClassDefFoundError: AKApplet$2
at AKApplet.run(AKApplet.java:675)
L'applet utilise la méthode run() pour charger des données en arrière-plan tout en conservant l'interface utilisateur réactive. Trucs assez standard. À la ligne 675, après que les données ont été chargées, je suis en train de mettre à jour les composants de l'interface utilisateur à l'aide invokeLater()
:
public void run() {
// ... data loads ...
// line 675:
javax.swing.SwingUtilities.invokeLater(new Runnable() {
public void run() {
userMessages.setText("Data loaded.");
panelList.setVisible(true);
validate();
}
});
}
Les composants que je suis en train de mettre à jour sont userMessages
, un JLabel et panelList
qui est un groupe spécial. Je ne pense pas que cela soit aussi loin.
Est-ce que quelqu'un sait ce qui pourrait se passer? À ce stade, l'applet a été chargée et les composants peuvent être vus et mis à jour, etc.
Regardez votre sortie de compilation, ils devraient être là. Le code: 'new Runnable() {...}' va en créer un. – kschneid
Ahh. Je suppose que j'avais tort. Il y avait * quelques classes internes, les classes Runnable(). Maintenant tout a un sens. J'appelle Runnable() deux fois dans l'applet. Merci encore, excellente réponse. – jar