| Код | package diploma.components;
import java.util.ArrayList;
import javax.swing.table.AbstractTableModel;
public class DataTableModel extends AbstractTableModel { private ArrayList row = new ArrayList();
public DataTableModel(String Data) { if (Data.equals("")) throw new ExceptionInInitializerError("Constructor in "+getClass().getName()+" cannot receive \"\" value"); try { String Temp[] = Data.split(";"); ArrayList column = new ArrayList(); for (int i = 0; i < Temp.length; i++) { if (!Temp[i].equals(";") && (Temp[i].indexOf("\n") == -1)) { column.add(Temp[i]); } if (Temp[i].indexOf("\n") != -1) { column.add(Temp[i].substring(0, Temp[i].indexOf("\n"))); row.add(column); column = new ArrayList(); column.add(Temp[i].substring(Temp[i].indexOf("\n") + 1)); } } } catch (Exception e) { e.printStackTrace(); } }
/** * Returns the number of columns in the model. * * @return the number of columns in the model * @todo Implement this javax.swing.table.TableModel method */ public int getColumnCount() { return ((ArrayList) row.get(0)).size(); }
/** * Returns the number of rows in the model. * * @return the number of rows in the model * @todo Implement this javax.swing.table.TableModel method */ public int getRowCount() { return row.size(); }
public void addColumn() { fireTableStructureChanged(); for (int i = 0; i < getRowCount(); i++) { ((ArrayList) (row.get(i))).add("dfr"); } this.fireTableDataChanged(); } /** * Returns the value for the cell at <code>columnIndex</code> and * <code>rowIndex</code>. * * @param rowIndex the row whose value is to be queried * @param columnIndex the column whose value is to be queried * @return the value Object at the specified cell * @todo Implement this javax.swing.table.TableModel method */ public Object getValueAt(int rowIndex, int columnIndex) { System.out.println(((ArrayList) (row.get(rowIndex))).get(columnIndex). toString()); return ((ArrayList) (row.get(rowIndex))).get(columnIndex); }
public String getData() { String Data = ""; for (int i = 0; i < getRowCount(); i++) { for (int j = 0; j < getColumnCount(); j++) { Data += ((ArrayList) (row.get(i))).get(j).toString(); if (j != getColumnCount() - 1) { Data += ";"; } } Data += "\n"; } return Data; } }
|
Вызываю код | Код | try{ DataTableModel datatablemodel = (DataTableModel) ( getselectedexternalpanel().jTable2.getModel()); datatablemodel.addColumn();
datatablemodel.fireTableStructureChanged(); getselectedexternalpanel().jTable2.setModel(datatablemodel); getselectedexternalpanel().jTable2.revalidate(); getselectedexternalpanel().jTable2.repaint(); }catch(Exception ex){ ex.printStackTrace(); }
|
который почему-то не добавляет столбец в jTable2 . Проблема уже решена. Здесь представлен работающий код. Простите.. Можно удалить тему. Это сообщение отредактировал(а) Hopeless - 25.10.2007, 14:41
|