Jtable avec différents types de cellules en fonction du type de données
Comment puis-je mettre en œuvre une JTable avec différents types de cellules éditeurs en fonction du type d'entrée d'une ligne particulière est de l'affichage?
Par exemple
- certaines lignes pourraient être des cases à cocher (pour les types boolean)
- certaines lignes pourraient être comboboxes (si je veux fournir un ensemble fixe d'options à choisir)
- certaines lignes pourraient être les champs de texte (si je puis me permettre de données arbitraires).
Actuellement, j'ai mis en œuvre la AbstractTableModel
, qui prend un ensemble de champ personnalisé d'objets de mon objet et ajoute des lignes à la table. Je voudrais personnaliser mon tableau en définissant des types spécifiques de cellules. Je peux déterminer quel type de cellule à utiliser en fonction du type de champ qui contient la ligne.
Le modèle de table est créé dynamiquement au moment de l'exécution.
il n'y pas de problème pour créer EachRowRenderer pour TableCellRenderer, mais jamais vu, essayé (si elle existe) avec TableCellEditor, btw n'a pas d'importance si c'est la valeur pour JTable est stocké par Défaut ou AbstractTableModel
OriginalL'auteur That Umbrella Guy | 2013-06-06
Vous devez vous connecter pour publier un commentaire.
par exemple
JTable.getDefaultRenderer
qui est facile.À l'aide de cette référence, je pourrais sans doute en œuvre des zones de liste déroulante ainsi relativement facilement à l'aide de quelque chose comme javaworld.com/javaworld/javatips/jw-javatip102.html ?
avec ce ZOO est-il un bug (non officiel), ne peuvent pas trouvé qu'ici, rappelez-vous que seulement résolu sur le fond(DefaultTableCellRenderer), maintenant aucune idée à ce sujet est
href="http://stackoverflow.com/a/6261853/714968">avez-vous le sens, il est possible de mettre il y a la saisie semi-automatique JComboBox/component swing jtextfield comme TableCellEditor, notez qu'il y a pas de raison d'utiliser la table de hachage, DefaultTableModel peut le faire et facilement:-), ne Jamais mettre JComponents dans le XxxTableModel, pour JComboBox (comme convertisseur et éditeur) est-il stocké uniquement de la Chaîne de valeur (selon les données de typer pour ComboBoxModel)
+1 exemple de l'approche décrite ici.
OriginalL'auteur mKorbel
Créer une classe personnalisée mise en œuvre de javax.swing.table.TableCellRenderer, qui affiche les valeurs à l'aide de la commande que vous souhaitez afficher en fonction du type de données. Utiliser des instances de cette classe en tant rendu de cellule (TableColumn.setCellRenderer)
OriginalL'auteur TT.