Précédent   Forum du club des développeurs et IT Pro > Java > Interfaces Graphiques en Java > SWT/JFace
SWT/JFace Forum d'entraide pour les API SWT/JFace. Avant de poster -> FAQ SWT/JFace
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse
 
Outils de la discussion
Publicité
'
Vieux 18/07/2012, 14h22   #1
Ma29200
Nouveau Membre du Club
 
Femme
Inscription : janvier 2012
Messages : 180
Détails du profil
Informations personnelles :
Sexe : Femme

Informations forums :
Inscription : janvier 2012
Messages : 180
Points : 27
Points : 27
Par défaut Checkbox SWT Listener

Salut à tous,
Je cherche à réaliser une checkbox en SWT. Le problème vient du listener. Je voudrais le mettre sur une ligne et non sur l'ensemble de la checkbox.

Voici le code que je voudrais (avec le listener non fonctionnel):

Code :
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
        Composite top = new Composite(parent, SWT.NONE);
        this.table = new Table(top, SWT.CHECK);
        this.table.setSize(204,1000);
        this.table.setHeaderVisible(true);
        this.table.setLinesVisible(false); 

...................

TableColumn colonne1 = new TableColumn(table, SWT.CENTER);
        colonne1.setText("Vertex List");
        colonne1.setWidth(204);
        
            
        if (null != this.activeXmlFile){
            final Object[] colStrEnable = this.activeXmlFile.getComponentsEnable().toArray();
            final Object[] colStrName = this.activeXmlFile.getComponentsName().toArray();
            for (int i=0; i< this.activeXmlFile.getComponentsLength() ;i++)
            {
            	
                TableItem ligne = new TableItem(table,SWT.NONE);
                ligne.setText((String)colStrName[i]);
                ligne.addListener(SWT.Selection, new Listener() {
                	
					public void handleEvent(Event event) {
						 TableColumn colonne1 = new TableColumn(table, SWT.CENTER);
        colonne1.setText("Vertex List");
        colonne1.setWidth(204);
                    
        if (null != this.activeXmlFile){
            final Object[] colStrEnable = this.activeXmlFile.getComponentsEnable().toArray();
            final Object[] colStrName = this.activeXmlFile.getComponentsName().toArray();
            for (int i=0; i< this.activeXmlFile.getComponentsLength() ;i++)
            {
            	
                TableItem ligne = new TableItem(table,SWT.NONE);
                ligne.setText((String)colStrName[i]);
                ligne.addListener(SWT.Selection, new Listener() {
                	
					public void handleEvent(Event event) {
						 System.out.println("IN");
						
					}
                
                });
                if (colStrEnable[i].equals("true")==true){
                    ligne.setChecked(true);
                }else{
                	ligne.setChecked(false);
                }
Je voudrais que lorsque je coche ou décoche une ligne, le "IN" apparaissent dans ma console.

Je sais qu'on peut passer par un table.addListener(SWT.Selection, new Listener() mais ca ne me convient pas par rapport à mon code.

Une idée de comment faire?
Ma29200 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 19/07/2012, 15h36   #2
Ma29200
Nouveau Membre du Club
 
Femme
Inscription : janvier 2012
Messages : 180
Détails du profil
Informations personnelles :
Sexe : Femme

Informations forums :
Inscription : janvier 2012
Messages : 180
Points : 27
Points : 27
Pour être plus concise, je cherche à ajouter un addListener sur un TableItem.
Ma29200 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 19/07/2012, 16h36   #3
Gueritarish
Modérateur
 
Avatar de Gueritarish
 
Homme Marc
Développeur Java
Inscription : mai 2007
Messages : 1 564
Détails du profil
Informations personnelles :
Nom : Homme Marc
Âge : 28
Localisation : France, Haute Garonne (Midi Pyrénées)

Informations professionnelles :
Activité : Développeur Java
Secteur : High Tech - Éditeur de logiciels

Informations forums :
Inscription : mai 2007
Messages : 1 564
Points : 3 421
Points : 3 421
Salut,

En terme de besoin fonctionnel, tu cherches à faire quoi exactement?
Parce que nous dire que tu cherches à ajouter un listener, c'est bien, nous dire à quoi il va servir, c'est mieux
Pour l'instant, je ne vois pas où tu veux en venir... Juste être informé que l'utilisateur à cliquer sur la checkbox dans ta Table? C'est un évènement de sélection, après il utilise le champ SelectionEvent.detail. Il te suffit de faire la comparaison avec SWT.CHECK, si ça te renvoie true, alors, c'était un clic sur la checkbox.
Exemple:
Code :
1
2
3
4
5
6
7
8
9
10
myTable.addSelectionListener(new SelectionAdapter() {
  @Override
  public void widgetSelected(final SelectionEvent e) {
    if (e.detail == SWT.CHECK) {
      System.out.println("Checkbox");
    } else {
      System.out.println("Sélection");
    }
  }
});
Voilà, à+
Gueritarish
__________________
Pas de questions technique par MP, les forums sont là pour ça.

Le 5 et 6 juin à Toulouse, la première EclipseCon France !
Gueritarish est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 20/07/2012, 09h00   #4
Ma29200
Nouveau Membre du Club
 
Femme
Inscription : janvier 2012
Messages : 180
Détails du profil
Informations personnelles :
Sexe : Femme

Informations forums :
Inscription : janvier 2012
Messages : 180
Points : 27
Points : 27
Oui c'est comme j'avais fait au départ mais je n'arrivais pas à retomber sur ce que je voulais sans retester ma liste. Mais bon je m'y suis prise autrement, avec le même type de code, et ca marche.

Merci!
Ma29200 est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Cette discussion est résolue.
Outils de la discussion

Navigation rapide


Fuseau horaire GMT +2. Il est actuellement 22h57.


 
 
 
 
Partenaires

Hébergement Web