import javax.swing.*; import javax.swing.table.*; import java.text.*; class OntoTableModel extends AbstractTableModel{ OntoApp oa; public int getColumnCount(){ return oa.od.data[0].length+3; } public int getRowCount(){ return oa.od.data.length; } public String getColumnName(int col){ if(col==0){return "";} if(col<=oa.od.parameters.length){return oa.od.parameters[col-1];} return new String[]{"X", "Y"}[col-1-oa.od.parameters.length]; } public Object getValueAt(int row, int col){ // if(row==0){return getColumnName(col);} // row=row-1; if(col==0){return oa.od.names[row];} NumberFormat nf=NumberFormat.getNumberInstance(); nf.setMaximumFractionDigits(3); if(col<=oa.od.data[0].length){ // return new Double(oa.od.data[row][col-1]); return nf.format(oa.od.data[row][col-1]); } // if(col-oa.od.data.length-1<2){ // return new Double(oa.od.coordinates[row][col-oa.od.data[0].length-1]); return nf.format(oa.od.coordinates[row][col-oa.od.data[0].length-1]); // } // return new Integer(200); } public boolean isCellEditable(int row, int column){ return true; } public void setValueAt(Object value, int row, int column){ if(column>0 && column<=oa.od.data[0].length){ oa.od.data[row][column-1]=Double.parseDouble((String)value); } if(column==0){ oa.od.names[row]=(String)value; } if(column>oa.od.data[0].length){ oa.od.coordinates[row][column-oa.od.data[0].length-1]=Double.parseDouble((String)value); } oa.repaint(); } }