Je voudrais créer une table avec la méthode constructeur JTable (TableModel). Quelles méthodes exactes dans le TableModel dois-je afficher les titres de chaque colonne?Afficher les titres de table avec un modèle de table dans Java Swing
Répondre
Vous devez intégrer votre JTable
dans un JScrollPane
et les têtes de colonne seront affichés automatiquement:
JScrollPane sp = new JScrollPane(new JTable());
Vous devez mettre en œuvre un TableModel par exemple en étendant la classe AbstractTableModel ou à l'aide d'un DefaultTableModel. Ce dernier a un constructor où vous pouvez définir le nombre et les noms de vos colonnes.
Vous devez implémenter la méthode getColumnName dans le TableModel Interface pour renvoyer les noms de colonnes que vous voulez.
De la Javadoc de TableModel:
Chaîne getColumnName (int columnIndex)
Renvoie le nom de la colonne à columnIndex. Ceci est utilisé pour initialiser le nom de l'en-tête de colonne de la table.
EDIT:
La classe abstraite AbstractTableModel offre la mise en œuvre pour la plupart des méthodes dans l'interface TableModel et fournit également une implémentation par défaut pour la méthode getColumnName dans l'interface TableModel (mais qui pourrait ne correspond pas à votre objectif car il retourne les noms de colonnes comme A, B ..).
Créer votre propre TableModel par le sous-classement AbstractTableModel et fournissent implemenation pour les méthodes abstraites et outrepasser GetColumnName. Par exemple, vous pouvez essayer quelque chose comme:
class MyTableModel extends AbstractTableModel {
private List<String> rowData; // say
private List<String> columnNames;
MyTableModel(List<String> data,List<String> names) {
rowData = data;
columnNames = names;
}
// provide implementation of abstract methods
public int getRowCount() {...}
public int getColumnCount() {...}
public Object getValueAt(int row, int column) {...}
@Override
public String getColumnName(int pCol) {
return columnNames.get(pCol);
}
...
}
// create your table as below;
List<String> data = new ArrayList<String>();
data.add("Test");
data.add("Try");
List<String> colNames = new ArrayList<String>();
colNames.add("Name");
MyTableModel model = new MyTableModel(data,colNames);
JTable myTable = new JTable(model);
Je pense que ce que vous cherchez vraiment la classe est la DefaultTableModel. Il suffit de lire la documentation et vous serez sur votre propre chemin.
- 1. Java Swing Table questions
- 2. Java Swing Table taille
- 3. Modèle de table dans table vide
- 4. Java Swing - Suppression de lignes de la table avec AbstractTableModel()
- 5. Conception de modèle de table Java
- 6. Afficher les données de NSMutable Chaîne dans la table Afficher
- 7. Table/modèle dynamique dactylographié en Java EE?
- 8. Modèle de table avec interface utilisateur riche
- 9. Java GUI Swing Modèle Explication
- 10. Java: Afficher un corps Email Swing
- 11. Afficher les index dans la table MySQL
- 12. Modèle MVC en Java Swing?
- 13. Java DB Héritage de table?
- 14. Java Swing: Comment ajouter un CellRenderer pour afficher une date?
- 15. Java/Swing: JTable.rowAtPoint ne fonctionne pas correctement pour les points en dehors de la table?
- 16. Dans IE6, Quelles sont les alternatives à afficher: inline-block, table, table-row. table-cellule?
- 17. Comment afficher les images dans une vue de table
- 18. Modèle d'entité MVC ne pas afficher ma table
- 19. Comment afficher un puits modalviewcontroller dans une vue de table
- 20. Résumé table modèle
- 21. java/swing: affichage des lignes cibles de dépôt potentiel dans une table JTable
- 22. Java/Swing: Problème avec l'écouteur de touche
- 23. Modèle vide, table vide
- 24. Comment afficher les lignes d'une table sous forme de colonnes dans une nouvelle table
- 25. Table de données avec des légendes dans JfreeChart/Java
- 26. Cacher/afficher des colonnes de table avec jQuery
- 27. Colonne de table hiérarchique dans Java
- 28. Modèle EF à partir de 2 tables connectées avec table de jonction - Modèle ne pas voir les enregistrements et les changements dans la table de jonction
- 29. je veux afficher les cellules en vue de la table avec un certain écart entre les
- 30. Java println formatage afin que je puisse afficher une table?
Merci Adamski. Il y a cependant un petit problème: j'utilise le GridBagLayout. lorsque j'ajoute le JScrollPane avec la JTable incorporée au conteneur avec cette disposition, la JTable est réduite à une taille très petite. Je n'arrive toujours pas à comprendre pourquoi ... – Anto
Avez-vous ajouté le scrollpane avec les valeurs appropriées fill, weightx et weighty? – willcodejavaforfood
les valeurs dont vous avez besoin sont fill = GridBagConstraints.BOTH et les valeurs weigthx et weighty doivent être relativement grandes par rapport à la somme de ces valeurs dans leur rangée/colonne respective. Idéalement weigthx et lourd pour le jscrollpane sera 1 (en base 1) et 0 dans le reste des composants dans la même ligne/colonne – Telcontar