-
Instanciation dans l'EDT
Bonjour à tous !
J'ai une classe Panneau qui hérite de JPanel, c'est peut-être pas très intelligent mais c'est comme ça :D
Ces panneaux sont sauvegardés dans ma base de donnée et au lancement de l'application je les charge et au besoin j'initialise leurs composants.
Le petit problème que j'ai c'est qu'Hibernate instancie ces panneaux lors de l'appel à Configuration.buildSessionFactory() et que cet appel est réalisé hors de l'EDT.
Comme mes panneaux héritent de JPanel, ils sont construis hors de l'EDT et j'aimerais autant que possible l'éviter.
Est-ce qu'il y a un moyen (autre que de réaliser l'appel à Configuration.buildSessionFactory() dans l'EDT...) pour instancier correctement ces panneaux ?
Merci d'avance pour vos réponses
-
Code:
SwingUtilities.invokeLater(Runnable r);
est ton amie.
-
Citation:
Envoyé par
sinok
Code:
SwingUtilities.invokeLater(Runnable r);
est ton amie.
Je ne le sais que trop bien :aie:
Le souci c'est que c'est Hibernate qui instancie ces classes, et pas moi.
Peut-être que l'initialisation d'hibernate dans l'EDT règlerai ce problème mais le fait de bloquer l'EDT plusieurs secondes me dérange, même si c'est à l'initialisation de l'application.
Je me disais qu'il y avait peut-être un moyen pour que ce soit du code perso qui fasse l'instanciation, une interface à implémenter peut-être, qu'on passerait à Hibernate au moment de l'instanciation.
-
Bah joue là autrement, c'est à dire de faire de la sérialisation, désérialisation, Hibernate ne gérant que des objets sérialisés, que tu désérialise une fois dans l'EDT.
Mais bon c'est quand même bien merdique comme saloperie...