Précédent   Forum du club des développeurs et IT Pro > Java > Interfaces Graphiques en Java > SWT/JFace
SWT/JFace Forum d'entraide pour les API SWT/JFace. Avant de poster -> FAQ SWT/JFace
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse
 
Outils de la discussion
Publicité
'
Vieux 25/07/2012, 16h39   #1
solika
Nouveau Membre du Club
 
Homme
Développeur .NET
Inscription : septembre 2011
Messages : 84
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 : 84
Points : 32
Points : 32
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 ?
solika est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 06/08/2012, 16h38   #2
Gueritarish
Modérateur
 
Avatar de Gueritarish
 
Homme Marc
Développeur Java
Inscription : mai 2007
Messages : 1 564
Détails du profil
Informations personnelles :
Nom : Homme Marc
Âge : 28
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 564
Points : 3 574
Points : 3 574
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 :
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.

Le 5 et 6 juin à Toulouse, la première EclipseCon France !
Gueritarish est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse
Outils de la discussion

Navigation rapide


Fuseau horaire GMT +2. Il est actuellement 23h47.


 
 
 
 
Partenaires

Hébergement Web