Erstellen jTable mit ArrayList
Ich suchte für eine Weile, aber ich kann nicht finden, eine Lösung für mein problem.
Möchte ich die Anzeige der Werte einer ArrayList in einer JTable, ich bin ziemlich neu hier und kann den Fehler beheben.
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);
}
}
Kann ich nicht die ArrayList
table
als ersten Wert in meinem EndTable
, aber ich weiß nicht, wie soll ich auch sonst tun.
Danke Euch allen für den Versuch einer Antwort auf mein problem.
Bearbeiten
Mein Ziel ist, machen Sie eine Liste mit
Entity-Name, art der änderung, Datum
so, ich dachte, es wäre das beste, um die Verwendung einer ArrayList, weil es flexibel ist.
Sie müssen flexibel sein, weil wir nicht wissen, wie viel der user ändern wird.
InformationsquelleAutor Kyo Akashi | 2014-11-17
Du musst angemeldet sein, um einen Kommentar abzugeben.
NÖ, da
JTable
hat keine reservierten argument fürArrayList
, aber ein trick, wird es lösen ! Sie wissen, dass die Argumente fürJTable
ist auch(Object[][], object[])
Beachten Sie, dass ich das ändern
ArrayList<String> table= new ArrayList()
zuArrayList<ArrayList<String>> table = new ArrayList();
also, wenn es kombinieren :
ArrayList<ArrayList<String>>
ist der gleiche wieString[][]
im casual-array ist, und wir wollen es zu konvertieren, umObject[][]
aahh, ich hätte das gedacht... vielen Dank für Ihre Erklärung!
Sind Sie Kinderwagen, warum nur 3 Zeilen gesehen?????? das ist, weil, wenn Sie erklären
addRows("buchung", "Created", "10.10.10")'
5 mal , werden Sie nicht das hinzufügen der Zeilen 5 mal, aber stattdessen fügen Sie Daten, WIE es in 5 Spalten (versuchen zu verstehen, meine Worte richtig ), und da Sie nur 3 Spalten "Name","Art der Bearbeitung", "Datum" , also der rest 2 Daten (2 Spalten) werden ignoriertjetzt verstehe ich, ich habe das problem, dass ich brauche mehr Spalten, ich verstehe es so weit, aber ich kann nicht herausfinden, wie ich die einzelnen Zeilen (sagen wir: manchmal 3, manchmal 15 Einträge), aber ich versuche, es herauszufinden, auf meine eigene erste! danke Fev^^
InformationsquelleAutor Fevly Pallar
Erstellen Sie benutzerdefiniertes TableModel für die Tabelle finden Sie unter dem folgenden link für mehr details Benutzerdefinierte JTable Modell
Hier finden Sie den code zum starten mit:
Und das ist das Ergebnis:
AbstractTableModel
bekommen Sie die gewünschten event-handling für Beispiel.Ja, du hast Recht, danke für die info 🙂
+1 für das update, aber vergessen Sie nicht, um das Feuer der entsprechenden Veranstaltung in
setValueAt()
.InformationsquelleAutor Naruto Biju Mode
Vielleicht sollten Sie veröffentlichen Sie Ihre Fehler.
Ich kann sehen, aus
JTable
Konstruktor im Java-API, die es sich nicht nehmen, einArrayList
als Argumente.Vielleicht sollten Sie versuchen, mit primitiven
arrays
?InformationsquelleAutor