En Java, estoy usando DefaultTableModel para agregar dinámicamente una columna a una JTable.Eliminar columna de TableModel en Java
//create DefaultTableModel with columns and no rows
DefaultTableModel tableModel = new DefaultTableModel(columnNames, 0);
JTable table = new JTable(tableModel);
La variable columnNames es una matriz de cadenas con los nombres de las columnas. Entonces, después de que el programa esté funcionando, el usuario tiene la opción de agregar columnas adicionales. Lo hago de la siguiente manera
tableModel.addColumn("New column name");
Que dinámicamente agrega la columna a la tabla como desee. El usuario también puede eliminar columnas agregadas. Para este uso el siguiente código:
TableColumn tcol = table.getColumnModel().getColumn(0);
table.getColumnModel().removeColumn(tcol);
que debe retirar la columna en un índice especificado, También he intentado:
table.removeColumn(sheet.getColumn(assessmentName));
Ambos trabajan (visualmente), pero aquí está el problema . Después de eliminar una columna agregada, si se agrega otra columna y la tabla se actualiza, la columna eliminada previamente vuelve a estar allí. Por lo tanto, aunque está eliminando la columna visualmente, ninguno de los dos últimos fragmentos de código realmente lo elimina del modelo. Supongo que, dado que la columna se agregó al modelo, ¿de dónde debe eliminarse? ¿Hay algún método específico al que necesite llamar o alguna lógica que deba implementar para eliminar la columna?
+1, para el método setAutoCreateColumnsFromModel(). Este es un método muy útil. – camickr
Gracias el enlace de esa publicación fue solo la información que necesitaba – Mark
Muchas gracias. No estaba enterado de la característica. – Mark