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 :

[ SWT ] fermer une fenetre


Sujet :

SWT/JFace Java

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Inscrit en
    Janvier 2006
    Messages
    79
    Détails du profil
    Informations forums :
    Inscription : Janvier 2006
    Messages : 79
    Par défaut [ SWT ] fermer une fenetre
    Salut,

    J'ai une fenetre qui contient une liste deroulante.
    La selection d'une ligne m'ouvre une nouvelle fenetre.

    J'essaie à ce moment de fermer la premiere fenetre sans succes.

    Voici mon code :
    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
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    public class ListLanguage 
    {
    	private static Logger	log	=	Logger.getLogger(ListLanguage.class.getName());
     
    	private Display display;
    	private Shell	shell;
     
    	public ListLanguage(Display display){
    		this.display	=	display;
    	}
     
     
    	public void start()
    	{
    		shell	=	new Shell(display);
    		shell.setText("Language");
     
    		Label label = new Label (shell, SWT.WRAP);
    		label.setText ("Please select language");
     
    		final Combo combo = new Combo (shell, SWT.READ_ONLY);
    		combo.setItems (new String [] {"English", "French"});
    		combo.setSize (200, 200);
     
     
    		final int insetX 		= 4, insetY = 4;
    		FormLayout formLayout 	= new FormLayout ();
    		formLayout.marginWidth 	= insetX;
    		formLayout.marginHeight = insetY;
    		shell.setLayout (formLayout);
     
    		Point size = label.computeSize (SWT.DEFAULT, SWT.DEFAULT);
     
    		final FormData labelData 	= new FormData (size.x, SWT.DEFAULT);
    		labelData.left 				= new FormAttachment (0, 0);
    		labelData.right 			= new FormAttachment (100, 0);
    		label.setLayoutData (labelData);
     
    		shell.addListener (SWT.Resize, new Listener () {
    			public void handleEvent (Event e) {
    				Rectangle rect 	= shell.getClientArea ();
    				labelData.width = rect.width - insetX * 2;
    				shell.layout ();
    			}
    		});
     
    		FormData listData 	= new FormData ();
    		listData.left 		= new FormAttachment (0, 0);
    		listData.right 		= new FormAttachment (100, 0);
    		listData.top 		= new FormAttachment (label, insetY);
    		combo.setLayoutData (listData);
     
    		combo.addListener (SWT.Selection, new Listener () {
    			public void handleEvent (Event e) 
    			{
    				int index	=	combo.getSelectionIndex();
    				Language.getInstance().setLocal(index);
     
    				Load load 	=	new Load(shell.getDisplay());
    				load.start();
     
    				shell.close();
    			}
    		});   
     
    //		this.shell.getDisplay()
    		// Center IHM
    		shell.setLocation(	(this.shell.getDisplay().getClientArea().width/2),
    							(this.shell.getDisplay().getClientArea().height/2));
     
    		shell.pack ();
    		shell.setSize(220, 101);
    		shell.open ();
     
    		while (!shell.isDisposed ()) {
    			if (!this.shell.getDisplay().readAndDispatch ()) this.shell.getDisplay().sleep ();
    		}
     
    		log.debug("display list language screen");
    		this.shell.getDisplay().dispose ();
    	}
     
    }
    J'ai essayé la methode setVisible(false) sans succès non plus !!!
    La nouvelle fenetre est implementé comme celle-ci au dessus. je ne vois pas comment réaliser cela.

    Merci de votre aide

  2. #2
    Membre confirmé
    Inscrit en
    Janvier 2006
    Messages
    79
    Détails du profil
    Informations forums :
    Inscription : Janvier 2006
    Messages : 79
    Par défaut
    n'hesitez pas à me demander des précisions si nécessaire !

  3. #3
    Membre confirmé
    Profil pro
    Inscrit en
    Juillet 2004
    Messages
    84
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2004
    Messages : 84
    Par défaut
    Salut,

    As tu essayé avec à la place de ton ?

  4. #4
    Membre chevronné Avatar de Rei Angelus
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Mars 2006
    Messages
    292
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 48
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur développement logiciels

    Informations forums :
    Inscription : Mars 2006
    Messages : 292
    Par défaut
    Je pense que ton shell doit se fermer avant que ton load s'ouvre.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
     
    	combo.addListener (SWT.Selection, new Listener () {
    		public void handleEvent (Event e) 
    		{
    		             int index	=	combo.getSelectionIndex();
    			Language.getInstance().setLocal(index);
     
    			shell.close();
     
    			Load load 	=	new Load(display);
    			load.start();
    		}
    	});

Discussions similaires

  1. [Swing] fermer une fenetre enfant avec un bouton.
    Par TheSeb dans le forum AWT/Swing
    Réponses: 3
    Dernier message: 23/11/2013, 12h42
  2. comment fermer une fenetre enfant
    Par stefane1981 dans le forum MFC
    Réponses: 12
    Dernier message: 20/10/2005, 11h32
  3. processus : fermer une fenêtre IE spécifique
    Par s.grenet dans le forum Général Conception Web
    Réponses: 11
    Dernier message: 26/08/2005, 13h41
  4. Comment fermer une Fenetre Modal avec Code ?
    Par Soulama dans le forum Langage
    Réponses: 19
    Dernier message: 13/07/2005, 11h17
  5. Confirmation avant de fermer une fenetre
    Par Dauphin dans le forum C++Builder
    Réponses: 10
    Dernier message: 26/05/2005, 00h27

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