hinzufügen arraylist Daten in JTable
ich hav eine ArreayList die enthalten PRIvariable(name der Klasse) Klasse Daten. Unten zeigt meinen Teil des java-Codes. So, jetzt will ich diese Arraylist Daten zu Jtable. wie kann ich das tun. Hier habe ich bereits Hinzugefügt pri.dateText , pri.sum , pri.count
zu ar(arraylist)
PRIvariable pri=new PRIvariable();
while (reader.ready()) {
String line = reader.readLine();
String[] values = line.split(",");
if(values[2].equals(pri.incDate)){
if(values[4].equals("KI")){
pri.dateText=values[2]+" "+values[4];
pri.count=pri.count+1;
pri.sum = pri.sum+Integer.parseInt(values[7]);
}
}
}
System.out.println(pri.dateText+" "+pri.sum+" "+pri.count);
ar.add(pri);
InformationsquelleAutor Chamal | 2010-12-30
Du musst angemeldet sein, um einen Kommentar abzugeben.
Wie alle Swing-Komponenten JTable basiert auf dem MVC-pattern (auf mehreren Ebenen, aber das ist nicht das Thema).
Haben Sie eine view (JTable), ein Modell (ich komme zurück auf Sie es später), und einem controller (hier implementiert als ein Satz von Ereignis-Listenern : ein controller für jede Art von Kontrolle).
Das array, das Sie haben könnte ein gutes Modell Ausgangspunkt. Jedoch Swing bietet weit bessere Weg, um zu injizieren, Ihre Daten in der JTable. In der Tat, eine JTable verwendet man als Modell eine Implementierung von
TableModel
. Hoffentlich, gibt es bereits eine Implementierung :DefaultTableModel
.So, hier ist was ich vorschlagen, Sie : erstellen DefaultTableModel, in seinen Zeilen/Spalten alle Daten, die Sie anzeigen möchten, in der Tabelle, dann rufen Sie
JTable#setModel(TableModel)
zu haben, das die Tabelle anzeigen Ihrer Daten.Offensichtlich, finden Sie bald verschiedene misfits zwischen DefaultTableModel und was Sie tun möchten. Dann wird es Zeit für Sie, erstellen unsere ganz eigenen Tisch-Modell. Aber das ist eine andere Frage.
Außerdem, vergessen Sie nicht, einen Blick auf Swing tutorial, es ist normalerweise eine gute Sache, wenn der Umgang mit Swing-Komponenten.
InformationsquelleAutor Riduidel
Ich nicht sehen, wo Sie haben eine ArrayList überall.
Erstellen Sie zuerst eine PRIvariable Objekt. Dann halten Sie zwar wie man eine Zeile Lesen der Daten aus der Datei. Für jede Zeile von Daten, die Sie aufteilen in einzelne Token und fügen Sie dann einige der token-Daten zu den PRIvariable ojbect. Das problem ist, dass Sie nur über einen einzigen PRIVariable Objekt. Also jedes mal, wenn Sie Lesen eine neue Zeile von Daten, die Sie ändern Sie die Werte der PRIvariable Objekt. Nach all der Schleife fügen Sie diese einzelne PRIvariable-Objekt der ArrayList, aber Sie wird immer nur ein Objekt in der ArrayList.
Die einfachere Lösung ist die Aktualisierung der TableModel, wie Sie die Daten. So etwas wie:
InformationsquelleAutor camickr
Blick in GlazedLists. Sie machen es sehr einfach zu erstellen ein passendes TableModel Objekt aus Ihrer Liste.
InformationsquelleAutor I82Much