Charger un tableau un tableau Java
Cela me rend fou. J'ai lu le Soleil du tutoriel concernant la création d'une table de base par défaut avec un modèle de données, mais ne peut pas trouver un exemple simple sur la façon de charger un tableau de données-objets comme:
class dataObject{
String name;
String gender;
Byte age;
public dataObject (String name, String gender, Byte age){
this.name = name;
.
.
}
Puis-je créer, par exemple, un vecteur de ce genre de choses:
Vector v = new Vector(99);
v.addElement(new dataObject("Marrie", "Female", 33);
v.addElement(new dataObject("John", "Male", 32);
Avec dataObject j'aimerais recueillir de l'info, maintenant, comment le diable, je l'afficher dans un tableau? Parce que ce n'est pas de travail:
JTable newTable = new Jtable(v, header) //header is another Vector.
Je reçois quelques erreurs qui m'amènent à cette dernière ligne. Ainsi, toute aide, même petit, est aprécié. Je sais qu'il y a plusieurs threads à ce sujet, mais ces gens ont déjà un soupir sur la façon JTable + TableModel fonctionne, j'ai juste l'obtenir.
Merci beaucoup.
OriginalL'auteur Gabriel A. Zorrilla | 2010-06-22
Vous devez vous connecter pour publier un commentaire.
Il y a deux façons de créer une JTable avec une base, préparé dataset:
Object
tableauVector
dont les éléments sontVector
de sorte que vous pouvez le faire:
ou vous pourriez faire ceci:
La prochaine étape serait de mettre en place votre propre
TableModel
d'utiliser leDataObject
classe que vous avez mis ensemble (notez que les classes Java commencer avec bouchons). L'extension deAbstractTableModel
rend la vie facile, que vous avez seulement besoin de mettre en œuvre trois méthodes pour commencer:les deux premiers sont faciles, vous pouvez obtenir la taille de votre
Vector
pour le nombre de lignes et de coder en dur le val de nombre de colonnes.getValueAt
est l'endroit où vous tirez les données de votreDataObject
Voici un exemple d'utilisation de la classe anonyme, l'extension de
AbstractTableModel
.J'ai gardé la
Vector
afin de le garder près de votre mise en œuvre. Vous pouvez facilement changer cela à une liste de tableaux dans cet exemple, sans aucun soucis.Je suis d'accord, dans cet exemple, c'est une structure de données assez simple. Il est utile dans ce ici juste pour montrer comment utiliser un objet personnalisé à l'appui d'une ligne dans une
TableModel
.OriginalL'auteur akf
Le problème est, le constructeur vous utilisez a été conçu pour contenir un vecteur qui contient d'autres vecteurs.
Chacun à l'information.
Voir cet échantillon de travail pour mieux le comprendre:
Qui crée:
quelque chose comme ceci http://img695.imageshack.us/img695/2032/capturadepantalla201006r.png
Juste au cas où, vous devriez jeter un oeil à ceci:
http://java.sun.com/docs/books/tutorial/uiswing/components/table.html
Si vous ne l'avez pas encore fait.
OriginalL'auteur OscarRyz
Vous ne pouvez pas charger des objets de données dans le DefaultTableModel. Vous devez créer un TableModel pour ce faire. Le Bean Modèle De Table est un modèle qui peut rendre ce processus plus facile pour vous.
OriginalL'auteur camickr
Je n'ai jamais utilisé JTable avant, mais la documentation dit que le constructeur prend un "Vecteur de Vecteurs" en tant que premier paramètre, et non un Vecteur de dataObjects.
OriginalL'auteur dsmith
Je sais que beaucoup de gens peuvent se méfier de dont encore un autre fichier jar, mais pour être honnête, n'importe comment simple le JTable (ou JList ou JComboBox), j'ai toujours utiliser le GlazedLists de la bibliothèque. Franchement c'est l'un des plus étonnants libs que vous aurez jamais l'utiliser. C'est très, très flexible. Mais un exemple simple consiste à placer les haricots dans une liste spéciale appelée EventList. Construire un tableau de format; créer le modèle en liant le format de la liste de données, puis sélectionnez définir comme la table du modèle.
Supposons que vous avez une Personne de la classe:
Maintenant, pour faire de votre tableau d'affichage d'une liste de ces personnes:
J'écris ceci à partir de la mémoire, mais je pense que c'est plus ou moins correct. La grande chose avec l'aide de cette bibliothèque est qu'il est gravement facile d'ajouter de tri et de filtrage de la table. Obtenir la base de la table de travail d'abord, puis de commencer à chercher sur le GlazedLists site pour voir ce que vous pouvez faire. Il y a vraiment de bonnes screencasts trop.
PS je suis en aucun cas affilié avec cette bibliothèque, je pense que ça déchire!
OriginalL'auteur arooaroo