MyTableModel.java
Created with JBuilder
package ch.w3p.currgrid;

import java.util.Vector;
import javax.swing.table.AbstractTableModel;
import javax.swing.event.TableModelEvent;

/**
 * Tablemodel spezifisch für die Klasse ch.w3p.currgrid.Matrix - ermöglicht die Darstellung eines Matrix Obj in einer Tabelle
* Überschreibt Zugriffsmethoden des AbstractTableModel * Simulates a Current Grid. Mathematic Project I2
* Authors Daniel Schröter; Fabian Heusser
* Teacher: Dr. Josef F. Bürgler
* School: hta.fhz.ch, Horw;
* Project Homepage: http://www.w3p.ch/currgrid/
* Project Maillist: currgrid@w3p.ch
*
* supported features:
* interpolatet Plot:
* interpolatet VoltageOutput;
* change Voltage Points;
* delete Voltage Points;
* delete a Singel Voltage Point;
* drawLevelLinesM;
* Matrix ScrPrintOut
*
* * LEGAL NOTICE
* THIS PROJECT AND ITS FILES ARE COPYRIGHTED BY THE AUTHORS * THIS PROJECT CAN BE COPIED, MODIFIED AND DISTRIBUTED * UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENCE * WITH THE RESTRICTION OF SENDING US A MAIL WITH THE MODIFIED * SOURCODE IF THE PROJECT IS MODIEFIED.
*
* if you like this progi feel free to send us something (beer, chips, playmates, houses....).
*
* * @author Daniel Schröter * @author Fabian Heusser * @version 1.02, 07/03/01 * @(#) MyTableModel.java * @see ch.w3p.currgrid.Matrix * @see javax.swing.table.AbstractTableModel */ public class MyTableModel extends AbstractTableModel { String[] columnNames = {}; Vector rows = new Vector(); Matrix myMatrix; /** * Konstruktor
* Generiert die benötigte Anzahl Spalten mit der Beschriftung.
* Füllt die Tabelle mit den Werten der mitgelieferten Matrix * @param myMatrix Die Matrix für die ein TableModel erzeugt werden soll * @see ch.w3p.currgrid.Matrix */ public MyTableModel(Matrix myMatrix) { this.myMatrix = myMatrix; int numberOfColumns = myMatrix.getSize()+2; //Ax=C matrix columnNames = new String[numberOfColumns]; int column; for(column = 0; column < numberOfColumns-2; column++) { columnNames[column] = new String(""+column); } columnNames[column] = new String("x"); columnNames[column+1] = new String("C"); // Get all rows. rows = new Vector(); for (int r = 0;r < myMatrix.getSize();r++) { Vector newRow = new Vector(); for (int i = 0; i < (numberOfColumns-2); i++) { newRow.addElement(new Double(myMatrix.getElement(i,r))); } newRow.addElement(new Double(myMatrix.getX(r))); newRow.addElement(new Double(myMatrix.getElement(numberOfColumns-2,r))); rows.addElement(newRow); } fireTableChanged(null); // Tell the listeners a new table has arrived. } /** * Liefert den Namen einer Spalte zurück * @param column Spalte * @return Spaltenname als String * @see javax.swing.table.AbstractTableModel */ public String getColumnName(int column) { if (columnNames[column] != null) { return columnNames[column]; } else { return ""; } } /* public Class getColumnClass(int column) { return Double.class; //all data = Double!!! }*/ /* public boolean isCellEditable(int row, int column) { return true; //keine Ahnung }*/ /** * Liefert die Anzahl Spalten zurück * @return int Spaltenanzahl * @see javax.swing.table.AbstractTableModel */ public int getColumnCount() { return columnNames.length; } /** * Liefert die Anzahl Zeilen zurück * @return int Zeilenanzahl * @see javax.swing.table.AbstractTableModel */ public int getRowCount() { return rows.size(); } /** * Liefert das Objekt an der Stelle aRow aColumn zurück * @param aRow Zeile * @param aColumn Spalte * @return Objekt (respektive Double) mit dem Wert * @see javax.swing.table.AbstractTableModel */ public Object getValueAt(int aRow, int aColumn) { Vector row = (Vector)rows.elementAt(aRow); return row.elementAt(aColumn); } /** * Wandelt einen Datentyp der Tabelle in einen String um
* !!Achtung alle sind vom Typ Double da ein Matrixobj nur Doublewerte hat!!
* @param column Spalte * @param value Das umzuwandelnde Objekt * @return String Den gewandelten Wert als String * @see javax.swing.table.AbstractTableModel */ public String dbRepresentation(int column, Object value) { return value.toString(); } /** * Ändern eines Wertes in der darzustellenden Matrix
* !!Wurde nicht implementiert, da die Matrix nicht verändert werden darf!!!!!
* Muss zwingend vorhanden sein weil diese Klasse vom Abstrakten AbstractTableModel abstammt. * @see javax.swing.table.AbstractTableModel */ public void setValueAt(Object value, int row, int column) { System.out.println("can not edit Matrix"); } }
MyTableModel.java
Created with JBuilder