Différences
Ci-dessous, les différences entre deux révisions de la page.
| Les deux révisions précédentes Révision précédente Prochaine révision | Révision précédente | ||
| slam4:gui:swt [2013/03/26 01:30] – jcheron | slam4:gui:swt [2019/08/31 14:21] (Version actuelle) – modification externe 127.0.0.1 | ||
|---|---|---|---|
| Ligne 8: | Ligne 8: | ||
| * Choisir **File/ | * Choisir **File/ | ||
| {{: | {{: | ||
| + | |||
| + | ===== -- Structure d'une application ===== | ||
| + | |||
| + | <sxh java; | ||
| + | public class MainWindow { | ||
| + | |||
| + | protected Shell shell; | ||
| + | |||
| + | /** | ||
| + | * Launch the application. | ||
| + | * @param args | ||
| + | */ | ||
| + | public static void main(String[] args) { | ||
| + | try { | ||
| + | MainWindow window = new MainWindow(); | ||
| + | window.open(); | ||
| + | } catch (Exception e) { | ||
| + | e.printStackTrace(); | ||
| + | } | ||
| + | } | ||
| + | |||
| + | /** | ||
| + | * Open the window. | ||
| + | */ | ||
| + | public void open() { | ||
| + | Display display = Display.getDefault(); | ||
| + | createContents(); | ||
| + | shell.open(); | ||
| + | shell.layout(); | ||
| + | while (!shell.isDisposed()) { | ||
| + | if (!display.readAndDispatch()) { | ||
| + | display.sleep(); | ||
| + | } | ||
| + | } | ||
| + | } | ||
| + | |||
| + | /** | ||
| + | * Create contents of the window. | ||
| + | */ | ||
| + | protected void createContents() { | ||
| + | shell = new Shell(); | ||
| + | shell.setSize(450, | ||
| + | shell.setText(" | ||
| + | |||
| + | } | ||
| + | |||
| + | } | ||
| + | </ | ||
| + | |||
| + | ===== -- Mode Design ===== | ||
| + | Créer l' | ||
| + | {{: | ||
| + | |||
| + | ===== -- Implémentation du comportement ===== | ||
| + | Nous allons ajouter les comportements suivants : | ||
| + | * Sur la sélection d'une des options, le texte de l' | ||
| + | * Sur le click du bouton Valider, le texte entré dans la zone de texte remplace le texte de l' | ||
| + | ==== -- Ajout de listener ==== | ||
| + | |||
| + | |||
| + | * Sélectionner L' | ||
| + | * Choisir **add Event Handler/ Selection/ WidgetSelected** | ||
| + | |||
| + | {{: | ||
| + | |||
| + | |||
| + | Le listener est implémenté via une classe anonyme : | ||
| + | <sxh java; | ||
| + | btnOption.addSelectionListener(new SelectionAdapter() { | ||
| + | @Override | ||
| + | public void widgetSelected(SelectionEvent e) { | ||
| + | |||
| + | } | ||
| + | }); | ||
| + | </ | ||
| + | |||
| + | * Ajouter un membre privé **Button activeButton** | ||
| + | * Implémenter le code suivant : | ||
| + | |||
| + | <sxh java> | ||
| + | @Override | ||
| + | public void widgetSelected(SelectionEvent e) { | ||
| + | activeButton = (Button) e.getSource(); | ||
| + | text.setText(activeButton.getText()); | ||
| + | } | ||
| + | </ | ||
| + | |||
| + | ==== -- Ajout d'un même listener sur les évènements de plusieurs Widgets ==== | ||
| + | |||
| + | <sxh java> | ||
| + | SelectionAdapter sa = new SelectionAdapter() { | ||
| + | @Override | ||
| + | public void widgetSelected(SelectionEvent e) { | ||
| + | activeButton = (Button) e.getSource(); | ||
| + | text.setText(activeButton.getText()); | ||
| + | } | ||
| + | }; | ||
| + | btnOption.addSelectionListener(sa); | ||
| + | btnOption_1.addSelectionListener(sa); | ||
| + | </ | ||
| + | |||
| + | |||
| + | ===== --Divers ===== | ||
| + | |||
| + | ==== -- Chargement d'une image ==== | ||
| + | <sxh java> | ||
| + | public static Image loadImage(String path, boolean inJar) { | ||
| + | Image newImage = null; | ||
| + | try { | ||
| + | if (inJar) | ||
| + | { | ||
| + | newImage = new Image(null, App.class.getClassLoader().getResourceAsStream(path)); | ||
| + | } | ||
| + | else { | ||
| + | newImage = new Image(null, path); | ||
| + | } | ||
| + | } catch (SWTException ex) { | ||
| + | ex.printStackTrace(); | ||
| + | } | ||
| + | |||
| + | return newImage; | ||
| + | } | ||
| + | </ | ||
| + | |||
| + | |||
| ===== -- Liens ===== | ===== -- Liens ===== | ||
| * [[http:// | * [[http:// | ||
| * [[http:// | * [[http:// | ||