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
Commentaires envoyés
Nous apprécions vos efforts et nous allons corriger l'article