Je fais une fenêtre en SWT, voivi mon code:
Il faut que quand je clique sur "Charger" donc action1, une arborescence apparaisse..
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 (); } }
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
Partager