Editeur personnalisé pour les PowerTable

Modifié le  Mon, 24 Apr 2017 sur 04:32 PM

La personnalisation d'un éditeur pour PowerTable peut ce faire de 2 façons :

- Par un simple liste déroulante.

- Par la création d'un éditeur personnalisé.


Concernant la simple liste déroulante, il suffit d'implementer la fonction "configureEditor(self, colIndex, colName)

et de renvoyer un Tupple du type :

    {'options': [(0, 'Option 0'), (1, 'Option 1'), (2, 'Option 2')]}

l'exemple est suffisamment claire pour être exploité.


Concernant un éditeur personnalisé : 

    il faut implementer un peu plus de code afin de renvoyer un objet de type TableCellEditor.

    voici un exemple de code qui en plus d'une liste d'option permet aussi à l'utilisateur de saisir une valeur.

  from javax.swing.table import TableCellEditor 
  from javax.swing import JTextField; 
  from javax.swing import AbstractCellEditor, JComboBox;
  
  class MyTableCellEditor ( TableCellEditor, AbstractCellEditor):
  
    def __init__(self, tableComponent):
      self.table= tableComponent
      self.cbValues = None
      
  #Construction de la liste
    def getTableCellEditorComponent(self, table, value, isSelected, rowIndex, vColIndex):  
    
      # Acces à un élément de la table.... si nécessaire
      intColumnValue = self.table.data.getValueAt(rowIndex,"Test")
  
      # Création de la liste de valeur. 
      newList = ['Valeur 1','Valeur 2','Valeur 3']
  
      # Création de la combo déclarée éditable.
      self.cbValues = JComboBox(newList)
      self.cbValues.setEditable(True)
  
      # renvoi de l'éditeur
      return self.cbValues
    
    def getCellEditorValue(self):
      return self.cbValues.getSelectedItem()
     
  

  myEditor = MyTableCellEditor(self)
  
  if colName == 'Shift':
    return {'editor': myEditor}


ci-joint un export de fenêtre contenant cette table.



Cet article a-t-il été utile ?

C'est super !

Merci pour votre commentaire

Désolé ! Nous n'avons pas pu vous être utile

Merci pour votre commentaire

Dites-nous comment nous pouvons améliorer cet article !

Sélectionner au moins l'une des raisons

Commentaires envoyés

Nous apprécions vos efforts et nous allons corriger l'article