Créer jTable avec ArrayList
J'ai cherché pendant un moment, mais je ne peux pas trouver une solution à mon problème.
Je veux afficher les Valeurs d'une liste de tableaux dans une JTable, je suis nouveau à cela et ne peux pas réparer l'erreur.
package Statistik;
import java.util.ArrayList;
import javax.swing.JFrame;
import javax.swing.JScrollPane;
import javax.swing.JTable;
public class Statistic {
private static ArrayList<String> rowA = new ArrayList();
private static ArrayList<String> rowB = new ArrayList();
private static ArrayList<String> rowC = new ArrayList();
private static ArrayList<String> titel = new ArrayList();
private static ArrayList<Object> table = new ArrayList();
public static void main(String[] args) {
titel.add("Name");
titel.add("Art der Bearbeitung");
titel.add("Datum");
addRows("buchung", "Created", "10.10.10");
addRows("buchung", "Created", "10.10.10");
addRows("buchung", "Created", "10.10.10");
addRows("buchung", "Created", "10.10.10");
addRows("buchung", "Created", "10.10.10");
table.add(rowA);
table.add(rowB);
table.add(rowC);
//Das JTable initialisieren
JTable EndTable = new JTable( table , titel );
JFrame frame = new JFrame( "Demo" );
frame.getContentPane().add(new JScrollPane( EndTable ) );
frame.setDefaultCloseOperation( JFrame.EXIT_ON_CLOSE );
frame.pack();
frame.setVisible( true );
}
public static void addRows(String rowa, String rowb, String rowc) {
rowA.add(rowa);
rowB.add(rowb);
rowC.add(rowc);
}
}
Je ne peux pas définir le ArrayList
table
comme première Valeur dans mon EndTable
, mais je ne sais pas comment je dois faire autrement.
Merci à vous tous pour essayer de répondre à mon problème.
Modifier
Mon but est de faire une Liste avec
Entité-le Nom, l'art du changement, la Date
j'ai donc pensé que ce serait la meilleure à utiliser une ArrayList, car il est flexible.
Il faut être souple, car nous ne savons pas combien l'utilisateur va changer.
OriginalL'auteur Kyo Akashi | 2014-11-17
Vous devez vous connecter pour publier un commentaire.
Nope depuis ,
JTable
n'a pas réservé argument pourArrayList
, mais un truc va le résoudre ! vous savez que les arguments deJTable
est également(Object[][], object[])
Remarque que je change
ArrayList<String> table= new ArrayList()
àArrayList<ArrayList<String>> table = new ArrayList();
ainsi, lorsque les combiner :
ArrayList<ArrayList<String>>
est même commeString[][]
occasionnel tableau, et nous voulons nous convertirObject[][]
aahh j'ai pu avoir la pensée de cette... merci pour votre explication!
Êtes-vous buggy qu'pourquoi seulement 3 lignes se voit pas ??? c'est parce que lorsque vous déclarez
addRows("buchung", "Created", "10.10.10")'
5 fois , vous n'êtes pas en ajoutant les lignes 5 fois, mais au lieu de cela, vous ajoutez des données COMME c'5 colonnes (essayer de comprendre mes mots correctement ), et parce que vous n'créer 3 colonnes par "Nom","l'Art Bearbeitung der", "Datum" , de sorte que le reste 2 datas (2 colonnes) sont ignorésje comprends maintenant, j'ai le problème que j'ai besoin de plus de colonnes, je le comprends, mais je ne peux pas comprendre comment je peux rendre les lignes individuelles (dire: parfois 3, parfois 15 entrées) mais j'essaie de comprendre à ma première! merci Fev^^
OriginalL'auteur Fevly Pallar
Vous devez créer des TableModel pour votre table, voir le lien suivant pour plus de détails Personnalisé JTable Modèle
Voici un code pour commencer:
Et voilà le résultat:
AbstractTableModel
d'obtenir l'événement de la manipulation, pour exemple.Oui, vous avez raison, merci pour l'info 🙂
+1 pour la mise à jour, mais n'oubliez pas de feu de l'événement approprié dans
setValueAt()
.OriginalL'auteur Naruto Biju Mode
Peut-être vous devriez poster votre erreur.
Je peux le voir dans
JTable
constructeur dans l'API Java qu'il ne prend pas unArrayList
comme arguments.Peut-être vous devriez essayer à l'aide de primitives
arrays
?OriginalL'auteur