[resolu] [SWT et MVC] modifier une pripriété d'un GUI de l'extérieur ?

modifier une pripriété d'un GUI de l'extérieur ? [resolu] [SWT et MVC] - Java - Programmation

Marsh Posté le 21-02-2005 à 11:09:58    

Voilà en gros ce que je veux faire :  

Code :
  1. Test thisClass = Test.getINSTANCE();
  2. thisClass.init();
  3. thisClass.setAnnee("1981" );


 
où Test est ma classe SWT, j'en ai fait un singleton, mais c'est peut-être une connerie, chui ouvert à touteS critiques (et je sens que ça va tomber...)
 
voilà le code de init:

Code :
  1. public void init() {
  2.         createSShell();
  3.         shell.open();
  4.         centerShell();
  5.         while (!isDisposed()) {
  6.             if (!shell.getDisplay().readAndDispatch())
  7.              shell.getDisplay().sleep();
  8.         }
  9.     }


 
le truc, c'est que le setAnnée() n'est évidemment jamais appellé, puisque on boucle dans init...
J'ai essayé de gruger en faisant de Test un Thread, et j'ai renommé init() en run(), et je fais Test.getInstance().start().
Mais ensuite, j'ai une erreur d'accès a mon thread...
 
Alors ? comment que j'peux faire ?? :??:  
 
 
P.S. : pour ceux qui en doute encore, c'est ma première appli en SWT (et même ma première appli graphique tout cours, tout langage confondu (sauf en VB, mais ça compte pas)


Message édité par brisssou le 28-02-2005 à 10:13:28
Reply

Marsh Posté le 21-02-2005 à 11:09:58   

Reply

Marsh Posté le 21-02-2005 à 13:34:22    

Le coup du sleep, ca parrait plutot bizar...
Un ptit lien avec lequel j'avais débuté SWT :  
http://www-106.ibm.com/developerwo [...] os-ecgui1/

Reply

Marsh Posté le 21-02-2005 à 13:43:32    

merci, vais essayer

Reply

Marsh Posté le 28-02-2005 à 10:13:02    

problème réglé :  

Code :
  1. private void setLabelText(final Label lbl, final String txt) {
  2.  Display display = getDisplay();
  3.  display.syncExec(new Runnable() {
  4.   public void run() {
  5.    lbl.setText(txt);
  6.   }
  7.  });
  8. }


 
et voilà un tutoriel swt qu'il est bien :


Message édité par brisssou le 28-02-2005 à 10:17:58
Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed