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

SWT/JFace Java Discussion :

Shell ou composite


Sujet :

SWT/JFace Java

  1. #1
    Membre régulier
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Septembre 2011
    Messages
    142
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Septembre 2011
    Messages : 142
    Points : 81
    Points
    81
    Par défaut Shell ou composite
    Voila, pendant un traitement (une fonction) je voudrais mettre un message d'avertissement suite à un problème.

    J'ai essayé un shell en SWT.APPLICATION_MODAL ou SWT.MODELESS mais le traitement continu.

    est-il possible de faire un message de confirmation en composite qui arrête le programme tant qu'il n'a pas cliquer sur le bouton ok et comment faire ? car j'ai essayé également un composite avec un bouton qui attends un true ce qui n'est pas terrible car je boucle à l'infini tant qu'il n'a pas cliqué sur le bouton et en plus ce composite ne s'affiche pas ?

    Une idée ?

  2. #2
    Membre expert
    Avatar de Gueritarish
    Homme Profil pro
    Développeur Java
    Inscrit en
    Mai 2007
    Messages
    1 800
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 39
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Développeur Java
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mai 2007
    Messages : 1 800
    Points : 3 919
    Points
    3 919
    Par défaut
    Salut,

    Voici une implémentation qui utilise une boite de dialogue JFace (mais tu peux tout à fait obtenir la même chose avec un Shell SWT):
    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
    public class SimpleTest {
     
      private static final class SimpleThread implements Runnable {
     
        @Override
        public synchronized void run() {
          System.out.println("Début du traitement !");
          Display.getDefault().asyncExec(new Runnable() {
            @Override
            public void run() {
              MessageDialog.open(MessageDialog.ERROR, null, "Erreur",
                  "Une erreur est survenu.", SWT.NONE);
              System.out.println("Libération du verrou !");
              SimpleThread.this.unlock();
            }
          });
          try {
            wait();
          } catch (final InterruptedException iException) {
            iException.printStackTrace();
          }
          System.out.println("Traitement fini !");
        }
     
        public synchronized void unlock() {
          notify();
        }
      }
     
      public static void main(final String[] args) {
        final Display display = new Display();
        final Shell shell = new Shell(display);
        shell.setLayout(new GridLayout(1, false));
     
        final Button button = new Button(shell, SWT.PUSH);
        final GridData gridData = new GridData(SWT.FILL, SWT.FILL, true, true);
        button.setLayoutData(gridData);
        button.setText("Lancer la tâche");
        button.addSelectionListener(new SelectionAdapter() {
          @Override
          public void widgetSelected(final SelectionEvent e) {
            new Thread(new SimpleThread()).start();
          }
        });
     
        shell.pack();
        shell.open();
        while (!shell.isDisposed()) {
          if (!display.readAndDispatch())
            display.sleep();
        }
        display.dispose();
      }
    }
    Tu as d'ailleurs un excellent tutoriel sur les Threads et leur communications à regarder.

    Voilà, à+
    Gueritarish
    Pas de questions technique par MP, les forums sont là pour ça.

Discussions similaires

  1. Listener sur shell ou composite
    Par solika dans le forum SWT/JFace
    Réponses: 2
    Dernier message: 02/10/2012, 11h51
  2. [SWT] SWT shell et composite
    Par Rocket dans le forum SWT/JFace
    Réponses: 1
    Dernier message: 26/03/2006, 12h08
  3. [SHELL] Icônes associées à des fichiers
    Par agh dans le forum API, COM et SDKs
    Réponses: 5
    Dernier message: 09/04/2003, 17h04
  4. [WSAD] Composition visuelle d'une applet
    Par schum11 dans le forum Eclipse Java
    Réponses: 1
    Dernier message: 09/04/2003, 16h19
  5. [Kylix] probleme pour lancer le shell
    Par miky dans le forum EDI
    Réponses: 5
    Dernier message: 13/08/2002, 09h39

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