Bonjour !
Je fais une petite application d'installation.
Elle se compose de cette manière, un Shell comportant trois Composites :
- un Composite Image : permet d'afficher une image (décoration)
- un Composite Boutons : permet d'avancer, reculer ou quitter
- un Composite Action : le reste de la fenêtre (formulaire, charte, description, choix des actions, etc.)
Détaillons le Composite Action... Il est lui même composé de plusieurs Composites empilés les uns sur les autres pour garder en mémoire les saisies précédentes.
Pour ne pas avoir de problèmes avec ceux-ci, je fais les met tous à visible false quand je change de page et je met celui sur la page courante à true de cette manière :
Composite Installation est construit de cette manière :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13 private void changer() { Control [] lesControles = sonCompositeCentral.getChildren(); for (int i=0;i<lesControles.length;i++) lesControles[i].setVisible(false); switch (saPage) { case 0 : CompositePreInstallation.getInstance(sonCompositeAction, SWT.NONE, TAILLE); break; case 1 : CompositeInstallation.getInstance(sonCompositeAction, SWT.NONE, TAILLE); finInstallation(); break; case 2 : CompositePostInstallation.getInstance(sonCompositeAction, SWT.NONE, TAILLE); break; default : liberer(); break; }//switch }//changer()
Mais j'obtiens ceci :
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 public class CompositeInstallation extends Composite { private static ProgressBar saBarre; private static CompositeInstallation m_Instance = null; private CompositeInstallation (Composite telComposite, int telsArguments, Point telleTaille) { super(telComposite,telsArguments); saBarre = new ProgressBar(this, SWT.SMOOTH | SWT.FILL); saBarre.pack(); setSize(telleTaille); setVisible(true); faireAvancerBarre(); }//constructeur static public CompositeInstallation getInstance(Composite telComposite, int telsArguments, Point telleTaille) { if (m_Instance == null) m_Instance = new CompositeInstallation(telComposite,telsArguments,telleTaille); m_Instance.setVisible(true); return m_Instance; }//getInstance() /*....suite....*/ }//class CompositeInstallation
Mais que ce passe-t'il ? Avez-vous une solution ?
Partager