Wow ! Ca marche maintenant =)
Par contre je n'arrive pas � comprendre pourquoi, ni o� �tait l'erreur.
Ce que j'ai maintenant, c'est un thread appell� apr�s la cr�ation des objets Swing, qui contient des instructions pour injecter des donn�es dans ces objets, + une instruction invokeLater() qui appelle... un autre thread (un Runnable) qui injecte les donn�es les plus grosses (celles destin�es au JTable). Bizarre ?
Je m'explique:
Pourquoi n'est-il jamais d�marr� ? Pourtant il l'est bien � un moment ou � un autre puisque les donn�es finissent par �tre charg�es, et sont affich�es dans les composants Swing.initComponents(); signalObject(obj);> pack();display();Jusque la ca va.Et la routine signalObject fait ceci: dataObj = obj; // OK SwingUtilities.invokeLater(new ManageObj(dataObj));La ca ne va plus.Pour finir, la routine ManageObj est un thread.Certes mais il n'est jamais demarre ;-(
En fait il faut faire: new ManageObj(dataObj).start();
Ok, ca c'est donc fait juste apr�s avoir cr�� les composants Swing.
et dans la m�thode run():
for each data
SwingUtilities.invokeLater(new Runnable()
{
public void run() { add_to_frame(data); }
});
Et donc l�, � l'int�rieur du Thread, j'impl�mente un Runnable ?? Pour
chacune des donn�es � injecter en plus ? Que ce passe-t'il pour les
instructions contenues dans le Thread (et non pas dans le Runnable qui
y est inclu), et qui elles aussi injectent dans les composants Swing
(de toutes petites quantit�s de donn�es, cependant) ?En r�sum�, le Thread est-il r�ellement utile ? Ne peut-on pas appeller, juste apr�s avoir cr�� les composants Swing, directement des Runnable gr�ce � invokeLater() ? Ou le Thread qui les enveloppe a-t'il une fonction au niveau de la event queue qui assure que ces Runnable seront bien execut�s ?
Suivant ton type de composant, l'usage d'une methode fireXXX() du modele peut etre plus approprie.
Ah ! Je ne connaissais pas. Je vais regarder.
? Je ne comprends pas. Pourquoi mon thread initial (c'est � dire, justement ManageObj()) est-il bloqu� ?Et ca bloque pendant ce temps.Normal puisque tu bloques le thread (avec la tache ManageObj).
Bah pourtant c'est exactement le m�me code (impl�ment� dans une classe m�re dont d�rivent les deux cas dont je parle), mais j'ai bien le comportement attendu, visible surtout lorsque j'affiche en m�me temps tout un tas de ces JInternalFrame: elles s'affichent, vides, puis progressivement les donn�es y sont inject�es. Remarque, il semble bien que je n'ai pas la main � ce moment... Mmm...Le pire c'est que j'ai d'autres frames qui fonctionnent avec d'autres donn�es et qui marchent.Et que non: soit ce n'est pas le meme code, soit c'est tellement rapide que tu ne vois pas le delai.
Aur�lien
