Wie fügen Sie eine Spalte an einer bestimmten position in JTable
Ich habe eine JTable mit einem vordefinierten Modell
wie zu Fragen, das Modell einfügen eine bestimmte Spalte in einer bestimmten position ?
so, ich möchte so etwas wie : DefaultTableModel.insertRow(int,Object[]) für Spalten
InformationsquelleAutor MhdSyrwan | 2012-01-01
Du musst angemeldet sein, um einen Kommentar abzugeben.
Ist es wirklich notwendig, fügen Sie die Spalte in Ihrer
TableModel
an einem bestimmten index ? Sie können leicht anpassen, die Reihenfolge der Spalten in der Ansicht (dieJTable
) dokumentiert, wie in der Klasse javadoc vonJTable
Erreicht wird dies, indem die
JTable#moveColumn
Methode.Hinzufügen einer Spalte zu Ihrem
DefaultTableModel
erfolgt Aufruf derDefaultTableModel#addColumn
MethodeNein. Dies ist auch in meiner Antwort (in der snippet kopiert aus der javadoc). Die Reihenfolge, in der die Ansicht ist völlig unabhängig von der Reihenfolge in der model. Das ist der Grund, warum die
JTable
alle diejenigen, die konvertieren, index-Methoden, wie z.B.convertColumnIndexToModel
ok , das könnte Probleme mit mir , so wie addColumn ohne Sie in das Modell ? tut JTable.addColumn Einfluss auf das Modell ?
Nicht. Die JTable selbst enthält keine Daten. Alle Daten werden aus dem Modell. Sie könnten die Dekoration zu einem vorhandenen Modell hinzufügen eine zusätzliche Spalte, ohne dabei Ihren ursprünglichen Modell. Und mit einem Dekorator, können Sie fügen Sie die Spalte zu jeder index, den Sie möchten
InformationsquelleAutor Robin
Es gibt keine Methode insertColumn wie DefaultTableModel.insertRow() zum einfügen von Zeilen. Einfügen um eine Spalte an einer bestimmten position, hängen Sie die Spalte mit DefaultTable.addColumn() und bewegen Sie dann die neue Spalte in die gewünschte position.
InformationsquelleAutor giannis christofakis
Mit DefaultTableModel:
Am Ende hat man anrufen
fireDataChanged
. Es ist nur eineaddColumn
mit mehreren überladungen. Dies ist kein Hindernis, wie die um der Anzeige ist unabhängig. Man kann verschieben Sie eine Spalte an eine andere position, und hat dafür Sorge zu tragen Stadtplan index != Spalte index. Um die richtige Ansicht-index sofort nach dem hinzufügen der Spalte, hat man Zugriff auf die JTable und rufenmoveColumn
.Fand ich es mal einfacher zu erstellen Sie ein neues TableModel und zuweisen. Oder nicht verwenden, das DefaultTableModel.
InformationsquelleAutor Joop Eggen
dieser link kann helfen
http://www.roseindia.net/java/example/java/swing/InsertColumn.shtml
Verpackung die genaue Methode nennen, der schon die komplette Antwort von yannis hristofakis in eine andere Methode, die nicht fügen Sie einen beliebigen Wert nicht ... fügen Sie einen beliebigen Wert 😉 Downvoted.
InformationsquelleAutor paparoch