Je cherche à comprendre le fonctionnement de SWT. Je pense avoir plus ou
moins compris le fonctionnement de SWING : des conteneurs proposent des
méthode "add" qui permettent d'ajouter des contrôles. Ensuite, quand un
conteneur est dessiné (méthode paint je crois), il appelle les méthodes de
ses "enfants" qui leur permettent d'être dessiné à leur tour. Je trouve ce
fonctionnement très intuitif et je ne le retrouve pas du tout dans SWT.
Déjà, le fonctionnement semble être inversé. On n'ajoute pas la référence
d'un contrôle à un conteneur mais la référence d'un conteneur à un contrôle
(dans le constructeur). Du coup, je n'arrive pas à comprendre comment
l'"arborescence" est stockée. En SWING, on a une fenêtre qui dessine un
JPanel qui dessine ses propres JPanel qui dessinent leurs propres boutons et
contrôles divers. Un appel de la méthode paint de la fenêtre provoque donc
l'affichage de toute la chaîne.
Quel est l'équivalent en SWT ? Si je crée un Button sur un Composite, où est
stocké la référence du bouton ? Qui provoque son affichage sur l'écran ?
Comment puis-je supprimer ce bouton du Composite programmatiquement ? J'ai
bien regardé du coté de dispose() mais on dirait que l'opération n'est pas
immédiate...
J'ai cherché dans la doc mais c'est souvent en anglais et pas toujours très
digeste, si quelqu'un pouvait me décrire simplement (si possible) le
fonctionnement, ça pourrait m'aider à démarrer.
Les problèmes suivants ont participé à ma reflexion : comment supprimer une
TableColumn d'une Table ? Comment "switcher" deux contrôles qui doivent se
partager le même espace (un champs texte qui doit afficher un résultat sous
forme de texte et disparaître pour laisser une Table afficher un résultat
structuré) ?
Merci d'avance pour toute explication ou référence qui me permettrait
d'avancer
Lilian
Cette action est irreversible, confirmez la suppression du commentaire ?
Signaler le commentaire
Veuillez sélectionner un problème
Nudité
Violence
Harcèlement
Fraude
Vente illégale
Discours haineux
Terrorisme
Autre
Christophe M
LR wrote:
Salut (désolé le message est un peu long),
Je cherche à comprendre le fonctionnement de SWT. Je pense avoir plus ou moins compris le fonctionnement de SWING : des conteneurs proposent des méthode "add" qui permettent d'ajouter des contrôles. Ensuite, quand un conteneur est dessiné (méthode paint je crois), il appelle les méthodes de ses "enfants" qui leur permettent d'être dessiné à leur tour. Je trouve ce fonctionnement très intuitif et je ne le retrouve pas du tout dans SWT.
Déjà, le fonctionnement semble être inversé. On n'ajoute pas la référence d'un contrôle à un conteneur mais la référence d'un conteneur à un contrôle (dans le constructeur). Du coup, je n'arrive pas à comprendre comment l'"arborescence" est stockée. En SWING, on a une fenêtre qui dessine un JPanel qui dessine ses propres JPanel qui dessinent leurs propres boutons et contrôles divers. Un appel de la méthode paint de la fenêtre provoque donc l'affichage de toute la chaîne.
Quel est l'équivalent en SWT ? Si je crée un Button sur un Composite, où est stocké la référence du bouton ? Qui provoque son affichage sur l'écran ? Comment puis-je supprimer ce bouton du Composite programmatiquement ? J'ai bien regardé du coté de dispose() mais on dirait que l'opération n'est pas immédiate...
J'ai cherché dans la doc mais c'est souvent en anglais et pas toujours très digeste, si quelqu'un pouvait me décrire simplement (si possible) le fonctionnement, ça pourrait m'aider à démarrer.
Les problèmes suivants ont participé à ma reflexion : comment supprimer une TableColumn d'une Table ? Comment "switcher" deux contrôles qui doivent se partager le même espace (un champs texte qui doit afficher un résultat sous forme de texte et disparaître pour laisser une Table afficher un résultat structuré) ?
Merci d'avance pour toute explication ou référence qui me permettrait d'avancer Lilian
Salut,
Un début de piste : http://eclipse.org/articles/Article-Writing%20Your%20Own%20Widget/Writing%20Your%20Own%20Widget.htm
Tu verras qu'ils font un appel à addPaintListener() c'est l'événement déclenché par un composant pour dire à ceux que ça intéresse qu'il se redessine. J'imagine qu'en interne, la classe mère (Control) de tous les composants graphiques s'ajoute au conteneur reçu en paramètre lors de la "contruction".
christophe
LR wrote:
Salut (désolé le message est un peu long),
Je cherche à comprendre le fonctionnement de SWT. Je pense avoir plus ou
moins compris le fonctionnement de SWING : des conteneurs proposent des
méthode "add" qui permettent d'ajouter des contrôles. Ensuite, quand un
conteneur est dessiné (méthode paint je crois), il appelle les méthodes de
ses "enfants" qui leur permettent d'être dessiné à leur tour. Je trouve ce
fonctionnement très intuitif et je ne le retrouve pas du tout dans SWT.
Déjà, le fonctionnement semble être inversé. On n'ajoute pas la référence
d'un contrôle à un conteneur mais la référence d'un conteneur à un contrôle
(dans le constructeur). Du coup, je n'arrive pas à comprendre comment
l'"arborescence" est stockée. En SWING, on a une fenêtre qui dessine un
JPanel qui dessine ses propres JPanel qui dessinent leurs propres boutons et
contrôles divers. Un appel de la méthode paint de la fenêtre provoque donc
l'affichage de toute la chaîne.
Quel est l'équivalent en SWT ? Si je crée un Button sur un Composite, où est
stocké la référence du bouton ? Qui provoque son affichage sur l'écran ?
Comment puis-je supprimer ce bouton du Composite programmatiquement ? J'ai
bien regardé du coté de dispose() mais on dirait que l'opération n'est pas
immédiate...
J'ai cherché dans la doc mais c'est souvent en anglais et pas toujours très
digeste, si quelqu'un pouvait me décrire simplement (si possible) le
fonctionnement, ça pourrait m'aider à démarrer.
Les problèmes suivants ont participé à ma reflexion : comment supprimer une
TableColumn d'une Table ? Comment "switcher" deux contrôles qui doivent se
partager le même espace (un champs texte qui doit afficher un résultat sous
forme de texte et disparaître pour laisser une Table afficher un résultat
structuré) ?
Merci d'avance pour toute explication ou référence qui me permettrait
d'avancer
Lilian
Salut,
Un début de piste :
http://eclipse.org/articles/Article-Writing%20Your%20Own%20Widget/Writing%20Your%20Own%20Widget.htm
Tu verras qu'ils font un appel à addPaintListener()
c'est l'événement déclenché par un composant pour dire à ceux que ça
intéresse qu'il se redessine. J'imagine qu'en interne, la classe mère
(Control) de tous les composants graphiques s'ajoute au conteneur reçu
en paramètre lors de la "contruction".
Je cherche à comprendre le fonctionnement de SWT. Je pense avoir plus ou moins compris le fonctionnement de SWING : des conteneurs proposent des méthode "add" qui permettent d'ajouter des contrôles. Ensuite, quand un conteneur est dessiné (méthode paint je crois), il appelle les méthodes de ses "enfants" qui leur permettent d'être dessiné à leur tour. Je trouve ce fonctionnement très intuitif et je ne le retrouve pas du tout dans SWT.
Déjà, le fonctionnement semble être inversé. On n'ajoute pas la référence d'un contrôle à un conteneur mais la référence d'un conteneur à un contrôle (dans le constructeur). Du coup, je n'arrive pas à comprendre comment l'"arborescence" est stockée. En SWING, on a une fenêtre qui dessine un JPanel qui dessine ses propres JPanel qui dessinent leurs propres boutons et contrôles divers. Un appel de la méthode paint de la fenêtre provoque donc l'affichage de toute la chaîne.
Quel est l'équivalent en SWT ? Si je crée un Button sur un Composite, où est stocké la référence du bouton ? Qui provoque son affichage sur l'écran ? Comment puis-je supprimer ce bouton du Composite programmatiquement ? J'ai bien regardé du coté de dispose() mais on dirait que l'opération n'est pas immédiate...
J'ai cherché dans la doc mais c'est souvent en anglais et pas toujours très digeste, si quelqu'un pouvait me décrire simplement (si possible) le fonctionnement, ça pourrait m'aider à démarrer.
Les problèmes suivants ont participé à ma reflexion : comment supprimer une TableColumn d'une Table ? Comment "switcher" deux contrôles qui doivent se partager le même espace (un champs texte qui doit afficher un résultat sous forme de texte et disparaître pour laisser une Table afficher un résultat structuré) ?
Merci d'avance pour toute explication ou référence qui me permettrait d'avancer Lilian
Salut,
Un début de piste : http://eclipse.org/articles/Article-Writing%20Your%20Own%20Widget/Writing%20Your%20Own%20Widget.htm
Tu verras qu'ils font un appel à addPaintListener() c'est l'événement déclenché par un composant pour dire à ceux que ça intéresse qu'il se redessine. J'imagine qu'en interne, la classe mère (Control) de tous les composants graphiques s'ajoute au conteneur reçu en paramètre lors de la "contruction".
christophe
Thomas Cornet
Salut (désolé le message est un peu long),
...
Les problèmes suivants ont participé à ma reflexion : comment supprimer une TableColumn d'une Table ?
Y'a pas de méthode simple pour supprimer une colonne, mais il y a deux solutions :
a) une plus complexe : tu supprime une par une toutes les colonnes de la table (en partant de la fin) et tu ne recrée que celles qui sont nécessaires
b) une moins propre : tu ne supprimes pas la colonne, mais tu lui met une largeur nulle, typiquement setWidth(0) et setResizable(false)
Comment "switcher" deux contrôles qui doivent se
partager le même espace (un champs texte qui doit afficher un résultat sous forme de texte et disparaître pour laisser une Table afficher un résultat structuré) ?
Soit tu joues sur leur visibilité (un à false, l'autre à true et vice-versa), soit tu peux les placer sur un composite utilisant un StackLayout
Salut (désolé le message est un peu long),
...
Les problèmes suivants ont participé à ma reflexion : comment supprimer une
TableColumn d'une Table ?
Y'a pas de méthode simple pour supprimer une colonne, mais il y a deux
solutions :
a) une plus complexe : tu supprime une par une toutes les colonnes de la
table (en partant de la fin) et tu ne recrée que celles qui sont
nécessaires
b) une moins propre : tu ne supprimes pas la colonne, mais tu lui met une
largeur nulle, typiquement setWidth(0) et setResizable(false)
Comment "switcher" deux contrôles qui doivent se
partager le même espace (un champs texte qui doit afficher un résultat sous
forme de texte et disparaître pour laisser une Table afficher un résultat
structuré) ?
Soit tu joues sur leur visibilité (un à false, l'autre à true et
vice-versa), soit tu peux les placer sur un composite utilisant un
StackLayout
Les problèmes suivants ont participé à ma reflexion : comment supprimer une TableColumn d'une Table ?
Y'a pas de méthode simple pour supprimer une colonne, mais il y a deux solutions :
a) une plus complexe : tu supprime une par une toutes les colonnes de la table (en partant de la fin) et tu ne recrée que celles qui sont nécessaires
b) une moins propre : tu ne supprimes pas la colonne, mais tu lui met une largeur nulle, typiquement setWidth(0) et setResizable(false)
Comment "switcher" deux contrôles qui doivent se
partager le même espace (un champs texte qui doit afficher un résultat sous forme de texte et disparaître pour laisser une Table afficher un résultat structuré) ?
Soit tu joues sur leur visibilité (un à false, l'autre à true et vice-versa), soit tu peux les placer sur un composite utilisant un StackLayout