IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

SWT/JFace Java Discussion :

Vider un champ Text dans un tableau


Sujet :

SWT/JFace Java

  1. #1
    Membre habitué
    Profil pro
    Inscrit en
    Décembre 2007
    Messages
    182
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2007
    Messages : 182
    Points : 159
    Points
    159
    Par défaut Vider un champ Text dans un tableau
    Bonjour

    J'ai un tableau avec 2 colonnes (une Clef et une Valeur) composés de 10 champ Text modifiable

    Quand je double clique sur un champ Text, je récupére la valeur que j'affiche dans une listBox.

    Jusque là, tout va bien

    J'ai rajouté un bouton Test qui me permet de vider de le champ Text et c'est là que ca m... Je trouve la colonne à laquelle il appartient et sa position mais pour vider le champ Text ???????????

    (Le code est commente et facile à lire )

    Merci d'avance

    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
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    89
    90
    91
    92
    93
    94
    95
    96
    97
    98
    99
    100
    101
    102
    103
    104
    105
    106
    107
    108
    109
    110
    111
    112
    113
    114
    115
    116
    117
    118
    119
    120
    121
    122
    123
    124
    125
    126
     
    public class TutoTable {
     
        private static Table table;
        private static TableColumn colonneClef;
        private static TableColumn colonneValeur;
        private static ArrayList<Text> textSendClef;
        private static ArrayList<Text> textSendValue;
        private static List listInfo;
        private static Display display;
        private static ArrayList<TableItem> tableItem;
        private static String textEnCours = "";
     
      public static void main(String[] args) {
            display = new Display();
          Shell shell = new Shell(display);
          shell.setText("test");
          shell.setSize(500, 500);
          table = new Table(shell,SWT.BORDER | SWT.V_SCROLL);
          table.setSize(250, 200);
          table.setLocation(5, 30);
          table.setHeaderVisible(true);
          table.setLinesVisible(true);
          colonneClef = new TableColumn(table, SWT.NONE);
          colonneClef.setText("Clef");
          colonneClef.setWidth(150);
          colonneClef.setResizable(false);
          colonneValeur = new TableColumn(table, SWT.NONE);
          colonneValeur.setText("valeur");
          colonneValeur.setWidth(150);
          colonneValeur.setResizable(false);
          listInfo = new List(shell, SWT.BORDER);
          listInfo.setSize(200, 300);
          listInfo.setLocation(275, 80);
     
          //listener pour la colonne Clef de champs Text
          class ListenerSendClef implements Listener{
                Text textSend;
                public ListenerSendClef(Text textSend){
                      this.textSend = textSend;
                }
            public void handleEvent(Event e) { 
                  String SendMajClef = textSend.getText();
                  textEnCours = SendMajClef;
                  listInfo.add(SendMajClef);
            }
             };
     
      //listener pour la colonne Valeur de champs Text
             class ListenerSendValue implements Listener{
                Text textSend;
                public ListenerSendValue(Text textSend){
                      this.textSend = textSend;
                }
          public void handleEvent(Event e) { 
            String SendMajValue = textSend.getText();
            textEnCours = SendMajValue;
            listInfo.add(SendMajValue);
           }
            };
     
          textSendClef = new ArrayList<Text>();
          textSendValue = new ArrayList<Text>();
          tableItem = new ArrayList<TableItem>();
     
          //je remplis le tableau
          for (int index = 0; index < 10; index++)
                {
                      String clef = "clef " + String.valueOf(index);
                      String value = "value " + String.valueOf(index);
                      TableItem item = new TableItem(table, SWT.NONE);
                      tableItem.add(item);
                      TableEditor editor = new TableEditor(table);
                      Text textClef = new Text(table, SWT.NONE);
                      textClef.setText(clef);
                      editor.grabHorizontal = true;
                      editor.setEditor(textClef, item, 0);
                      textSendClef.add(textClef);
     
                      editor = new TableEditor(table);
                      Text textValue = new Text(table, SWT.NONE);
                      textValue.setText(value);
                      editor.grabHorizontal = true;
                      editor.setEditor(textValue, item, 1);
                      textSendValue.add(textValue);
                }
     
          //implémentation des listeners
                for (int index = 0; index < 10; index++)
                      textSendClef.get(index).addListener(SWT.MouseDoubleClick, new ListenerSendClef(textSendClef.get(index)));
     
                for (int index = 0; index < 10; index++)
                      textSendValue.get(index).addListener(SWT.MouseDoubleClick, new ListenerSendValue(textSendValue.get(index)));
     
          Button  btOk2 = new Button(shell,SWT.PUSH);
          btOk2.setSize(50,50);
          btOk2.setLocation(350,30);
          btOk2.setText("Test");
          btOk2.addSelectionListener(new SelectionAdapter() {
              public void widgetSelected(SelectionEvent e) {
                  if (textEnCours.length() == 0)
                        return;
                  // je recherche le type de Text et sa position
                  for (int index = 0; index < 10; index++)
                  {
                        String clef = textSendClef.get(index).getText();
                        String valeur = textSendValue.get(index).getText();
                        if (clef.contains(textEnCours))
                              listInfo.add("C'est une Clef à l'index = " + String.valueOf(index));
                        if (valeur.contains(textEnCours))
                              listInfo.add("C'est une Valeur à l'index = " + String.valueOf(index));
                  }
     
                  //On le supprime comment ?????????????????????
               }
              });
     
          //Affichage de la fenetre
          shell.open();
          while (!shell.isDisposed()) {
              if (!display.readAndDispatch())
                  display.sleep();
          }
          display.dispose();
      }
    }

  2. #2
    Membre à l'essai
    Profil pro
    Inscrit en
    Avril 2008
    Messages
    26
    Détails du profil
    Informations personnelles :
    Âge : 39
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations forums :
    Inscription : Avril 2008
    Messages : 26
    Points : 21
    Points
    21
    Par défaut
    Salut,

    Tu es obligé de créer ton texte dans un Text et de les mettre dans des TableEditor ???

    Parce que si tu fais juste des item.setText(indice,text); pour les remplir ensuite pour les enlever tu auras juste à faire item.setText(indice,"");
    (où indice est le numéro de la colonne)

    Après il y a peut être plus joli mais à première vue c'est ce que je ferai .

  3. #3
    Membre habitué
    Profil pro
    Inscrit en
    Décembre 2007
    Messages
    182
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2007
    Messages : 182
    Points : 159
    Points
    159
    Par défaut
    Merci mais j'ai trouve une astuce
    On créé un Text textMaj
    Dans le lsitener on rajoute :

    textMaj = textSend;

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
     
    //listener pour la colonne Clef de champs Text
          class ListenerSendClef implements Listener{
                Text textSend;
                public ListenerSendClef(Text textSend){
                      this.textSend = textSend;
                }
            public void handleEvent(Event e) { 
                  String SendMajClef = textSend.getText();
                  textEnCours = SendMajClef;
                  listInfo.add(SendMajClef);
    textMaj = textSend;
            }
             };
    et dans le code du Bouton de maj;
    on fait tout betement
    textMaj.setText("toto");

    le champ est automatiquement maj


+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. [SQL-Server] Affichage / récupération champ text dans un tableau php
    Par jeeps64 dans le forum PHP & Base de données
    Réponses: 1
    Dernier message: 20/07/2011, 14h30
  2. champ TEXTE dans un DBGRID
    Par richard038 dans le forum Bases de données
    Réponses: 2
    Dernier message: 03/08/2005, 08h44
  3. Réponses: 5
    Dernier message: 15/05/2005, 08h51
  4. Insérer le contenu d'un champ texte dans un JavaScript
    Par yoyot dans le forum Général JavaScript
    Réponses: 1
    Dernier message: 17/02/2005, 14h12
  5. Champ text dans table inserted ?
    Par devdev dans le forum MS SQL Server
    Réponses: 3
    Dernier message: 28/06/2004, 17h00

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo