IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

AWT/Swing Java Discussion :

Fenêtre secondaire modal et WAIT_CURSOR


Sujet :

AWT/Swing Java

  1. #1
    Membre du Club
    Inscrit en
    Janvier 2007
    Messages
    8
    Détails du profil
    Informations forums :
    Inscription : Janvier 2007
    Messages : 8
    Par défaut Fenêtre secondaire modal et WAIT_CURSOR
    Bonjour,

    J'ai une fenetre secondaire (JPanel) contenant une JCombo Box liste, en la déroulant je lance une longue action (une requete à un serveur): pendant cette action je voudrais que la fenetre soit modale (pas accessible à l'utilisateur ) et le cursor en WAIT_CURSOR . En même temps la fenetre principale ne devrait pas être grisée.


    J'ai essayé avec ça mais le cursor n'apparait en wait qu' aprés l'exécution de l'action pas pendant et il reste bloquée même quand je ferme la fenetre:

    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
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    public  static void startWorker(final Runnable runnable,final Component window,final SecBrowserHandler browser) {
    	      SwingWorker swingWorker = new SwingWorker() {
    	          public Object construct() {
    	              try { 
    	                 setWaitCursor(true,window,browser);
    	                 runnable.run();
    	              } catch (Exception e) {
    	            	  setWaitCursor(false,window,browser);
    	            	  //showExceptionDialog(e);
    	              } finally {
    	                 setWaitCursor(false,window,browser);
    	              }
    	              return null;
    	          }
    	      };
    	      swingWorker.start("");
    	  }
     
    	  public static void setWaitCursor(boolean waitCursor, Component window,SecBrowserHandler browser) {
    	      if (browser!=null)
    	      {
    	    	  startModality();
    	      }
    	      else
    	      { 
    		    if (!waitCursor) window.setCursor(null);
    	        else window.setCursor(Cursor.getPredefinedCursor(Cursor.WAIT_CURSOR));
    	        glassPane_.setVisible(waitCursor);
    	      }
    	  }

    L'appel se fait comme suit :

    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
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
     public void initWeeklyScheduleList()
      {
        weeklyListModel_.removeAllElements();
        weeklyScheduleNameListGadget_.removeAllItems();
     
         AciModalityManager.startWorker(new Runnable() {
     
         public void run() {
     
           String[] scheduleIds = null;
     
           if (commonWeeklyScheduleManaged_)
           {  
             scheduleIds = SecCalendarManager.getInstance().getCommonWeeklyScheduleNameList(true);   
     
           }
           else
           {
             scheduleIds = SecCalendarManager.getInstance().getUserWeeklyScheduleNameList(owner_,false);
     
           }
     
     
    //  NMUes13771
       // weeklyListModel_.addElement(SecBabel.getString("sec.schedule.createNewWS"));
     
           if (scheduleIds != null)
           { 
               if (commonWeeklyScheduleManaged_)
               {  
     
        	     for (int i = 0; i < scheduleIds.length ; i++ )
        	     {
        	       weeklyListModel_.addElement(scheduleIds[i]);
        	     }
               }
               else
               {
     
        	      initAttacheDetachedWslist(scheduleIds);
     
                 for (int j=0;j<scheduleIdattached_.size();j++)
                 {
                    weeklyListModel_.addElement(scheduleIdattached_.elementAt(j));
                 }
                 for (int j=0;j<scheduleIdnotattached_.size();j++)
                 {
                    weeklyListModel_.addElement(scheduleIdnotattached_.elementAt(j));
                  }
                }
     
              }
            }
          },commonWeeklySchedulePanel_,SecBrowserHandler.getCurrentBrowser());
     
     
        weeklyListModel_.setSelectedItem(weeklyListModel_.getElementAt(0));
        weeklyListModel_.addElement(SecBabel.getString("sec.schedule.createNewWS"));
     
      }
    Merci

  2. #2
    Membre du Club
    Inscrit en
    Janvier 2007
    Messages
    8
    Détails du profil
    Informations forums :
    Inscription : Janvier 2007
    Messages : 8
    Par défaut est ce que qcq pourrait m'aider???

Discussions similaires

  1. Créer une fenêtre secondaire ?
    Par Invité dans le forum SDL
    Réponses: 2
    Dernier message: 03/11/2006, 19h54
  2. Réponses: 1
    Dernier message: 30/05/2006, 22h54
  3. Affichage d'une image sur une fenêtre secondaire.
    Par renorx dans le forum Composants VCL
    Réponses: 3
    Dernier message: 03/01/2006, 19h06
  4. Fenêtre popup modale. Est-ce possible ?
    Par Amnesiak dans le forum Général JavaScript
    Réponses: 3
    Dernier message: 24/02/2005, 17h35
  5. Réponses: 4
    Dernier message: 13/06/2004, 15h28

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo