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 :

[Débutant] Problème de variables


Sujet :

SWT/JFace Java

  1. #1
    Débutant
    Inscrit en
    Avril 2004
    Messages
    33
    Détails du profil
    Informations forums :
    Inscription : Avril 2004
    Messages : 33
    Points : 30
    Points
    30
    Par défaut [Débutant] Problème de variables
    Je fais une fenêtre en SWT, voivi 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
     
    import org.eclipse.swt.*;
    import org.eclipse.swt.events.*;
    import org.eclipse.swt.widgets.*;
    //import org.eclipse.swt.graphics.*;
     
    public class Essai 
    {
    	public static void main(String[] args) 
    	{
    		Display display = new Display ();
    		Shell shell = new Shell (display);
    		shell.setSize(500,500);
     
    		//Création de la barre de menu
    		Menu barre = new Menu(shell, SWT.BAR);
    		//On associe la barre de menu a la fenêtre
    		shell.setMenuBar(barre);
    		//Création d'un menu de la barre de menus
    		MenuItem file = new MenuItem(barre, SWT.CASCADE);
    		file.setText("Fichier");
     
    		Menu fileMenu = new Menu(shell, SWT.DROP_DOWN);
    		MenuItem action1 = new MenuItem(fileMenu, SWT.PUSH);
    		MenuItem action2 = new MenuItem(fileMenu, SWT.PUSH);
    		file.setMenu(fileMenu);
    		action1.setText("Charger");
    		action2.setText("Sauver");
     
    		action1.addSelectionListener(new SelectionAdapter() 
    		{
    			public void widgetSelected(SelectionEvent e) 
    			{
    				[color=red]DirectoryDialog directoryDialog = new DirectoryDialog(shell);[/color]
    				directoryDialog.setText("Ouvrir une simulation");
    				directoryDialog.setFilterPath("C:/Program Files");
    				String selectedDirectory = directoryDialog.open();
    				System.out.println("Directory Selected:" + selectedDirectory);
    			}
    		});
     
     
     
    		shell.open ();
    		while (!shell.isDisposed ()) 
    		{
    			if (!display.readAndDispatch ()) 
    				display.sleep();
    		}	
    		display.dispose ();
    	}
    }
    Il faut que quand je clique sur "Charger" donc action1, une arborescence apparaisse..

    Dans la fonction WidgetSelected", il arrive pas a accéder à "shell"

    Il me dit: " Impossible de faire référence à une variable non finale shell d'une classe définie dans une méthode différente"



    Merci

  2. #2
    Membre habitué Avatar de relivio
    Profil pro
    Inscrit en
    Février 2004
    Messages
    157
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2004
    Messages : 157
    Points : 177
    Points
    177
    Par défaut
    salut,

    alors il faut que tu déclares ton shell que tu crées "final" ou que tu en crées un autre dans le WidgetSelected

    1ère solution:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    public class Essai 
    { 
       public static void main(String[] args) 
       { 
          Display display = new Display (); 
          final Shell shell = new Shell (display); 
          shell.setSize(500,500); 
     
          //Création de la barre de menu 
          Menu barre = new Menu(shell, SWT.BAR); 
    ...
    2ème solution:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    action1.addSelectionListener(new SelectionAdapter() 
          { 
             public void widgetSelected(SelectionEvent e) 
             { 
                Shell sh2 = new Shell(...);
                [color=red]DirectoryDialog directoryDialog = new DirectoryDialog(sh2);[/color] 
                directoryDialog.setText("Ouvrir une simulation"); 
                directoryDialog.setFilterPath("C:/Program Files"); 
                String selectedDirectory = directoryDialog.open(); 
                System.out.println("Directory Selected:" + selectedDirectory); 
             } 
          });
    Tchô
    je pense que l'utilisation du balai chiotte n'est pas interdite et est même recommandé par les suivants!!!!

  3. #3
    Débutant
    Inscrit en
    Avril 2004
    Messages
    33
    Détails du profil
    Informations forums :
    Inscription : Avril 2004
    Messages : 33
    Points : 30
    Points
    30
    Par défaut
    OK Merci

    Un autre pb, comment réalise un systèmes de fenêtrage interne ave SWT?


    Merci

  4. #4
    Membre habitué Avatar de relivio
    Profil pro
    Inscrit en
    Février 2004
    Messages
    157
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2004
    Messages : 157
    Points : 177
    Points
    177
    Par défaut
    comment ça? tu entends quoi par interne et interne à quoi?
    je pense que l'utilisation du balai chiotte n'est pas interdite et est même recommandé par les suivants!!!!

  5. #5
    Débutant
    Inscrit en
    Avril 2004
    Messages
    33
    Détails du profil
    Informations forums :
    Inscription : Avril 2004
    Messages : 33
    Points : 30
    Points
    30
    Par défaut
    Une fenêtre principale composée de fenêtres .. Quand tu bouges la principale, les autres bougent avec.. Pareil, au redimensionnement de la principale, les autres se redimensionnent avec..

  6. #6
    Rédacteur
    Avatar de lunatix
    Homme Profil pro
    Architecte technique
    Inscrit en
    Novembre 2002
    Messages
    1 960
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : Architecte technique

    Informations forums :
    Inscription : Novembre 2002
    Messages : 1 960
    Points : 3 736
    Points
    3 736
    Par défaut
    tu peux pas faire de MDI en SWT

  7. #7
    Débutant
    Inscrit en
    Avril 2004
    Messages
    33
    Détails du profil
    Informations forums :
    Inscription : Avril 2004
    Messages : 33
    Points : 30
    Points
    30
    Par défaut
    c koi le remère?

  8. #8
    Membre habitué Avatar de relivio
    Profil pro
    Inscrit en
    Février 2004
    Messages
    157
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2004
    Messages : 157
    Points : 177
    Points
    177
    Par défaut
    Et est ce que tu as essayé de créer plusieurs shell avec le même display?
    Car je ne vois qu'à peu près ça!!
    je pense que l'utilisation du balai chiotte n'est pas interdite et est même recommandé par les suivants!!!!

  9. #9
    Débutant
    Inscrit en
    Avril 2004
    Messages
    33
    Détails du profil
    Informations forums :
    Inscription : Avril 2004
    Messages : 33
    Points : 30
    Points
    30
    Par défaut
    oui, g essayé... Mais, si tu veux, les fenêtres sont totalement indépendantes.. Dès qu'on bouge le display, les shell restent en vrac.. Ils sont pas intégrés ils sont justes superposés ...

    D'autres solutions?

  10. #10
    Rédacteur
    Avatar de lunatix
    Homme Profil pro
    Architecte technique
    Inscrit en
    Novembre 2002
    Messages
    1 960
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : Architecte technique

    Informations forums :
    Inscription : Novembre 2002
    Messages : 1 960
    Points : 3 736
    Points
    3 736
    Par défaut
    Citation Envoyé par bonnefr
    c koi le remère?
    il n'y en a pas vraiment ... en fait MDI est considéré par certains comme une erreur ergonomique. regarde comment est fait eclipse, pas de fenetre internes mais des views, c'est un autre concept.

Discussions similaires

  1. [Débutant]Problème de données dans une variable
    Par stansoad0108 dans le forum Collection et Stream
    Réponses: 7
    Dernier message: 26/06/2008, 14h36
  2. [Débutant] problème avec les types de variables
    Par mitmit dans le forum Débuter
    Réponses: 10
    Dernier message: 14/02/2008, 11h40
  3. Grand Débutant : problème boucle et variable
    Par carelha dans le forum Langage
    Réponses: 2
    Dernier message: 02/08/2006, 19h33
  4. [VB.NET] [Débutant] Probléme de variable dans les requettes
    Par Silvia12 dans le forum Windows Forms
    Réponses: 3
    Dernier message: 07/03/2005, 13h13
  5. Réponses: 11
    Dernier message: 02/09/2003, 14h20

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