MVC: Table

Estou desenvolvendo um programa semelhante ao Paint, no qual tenho um model para armazenar as primitivas graficas e outro model/adapter para armazenar as primitivas incluindo algumas propriedades, tambem possuo 2 views uma para cada model (parte grafica(impl Observer) e JTable com as propriedades, ambas JInternalFrames) ao pressionar o btn do mouse na view grafica e solta-lo delimito os pontos iniciais e finais da primitiva(forma geometrica) desenhando nesta view e atualizando o modelo grafico porem a view tabela/adapter nao esta sendo atualizada atraves do model/adapter/observer denominado tablemodel que recebe o graficmodel e o adapta.

trechos de codigo:

//view tabela

import javax.swing.*;
import javax.swing.table.TableColumn;

public class JPaintTableView extends JInternalFrame
{
	private JPaintTableModel ptm;
	private JTable tabInfo;
	private JScrollPane scrInfo;
	private JComboBox cbxColors;
	
	public JPaintTableView(JPaintTableModel ptm)
	{
	    this.ptm = ptm;

	    JPaintComboColors cbxBor = new JPaintComboColors();
	    JPaintComboColors cbxPre = new JPaintComboColors();
	    
	    tabInfo = new JTable(ptm.getTabModel());
	    
	    tabInfo.getTableHeader().setReorderingAllowed(false);
	    
	    TableColumn colCorBor = tabInfo.getColumnModel().getColumn(6);
	    colCorBor.setCellEditor(new DefaultCellEditor(cbxBor));
	    
	    TableColumn colCorPre = tabInfo.getColumnModel().getColumn(7);
	    colCorBor.setCellEditor(new DefaultCellEditor(cbxPre));
	    
		scrInfo = new JScrollPane(tabInfo);
		getContentPane().add(scrInfo);
	  	
    	setSize(640,200);
    	setClosable(true);
    	setResizable(false);
    	setTitle("TableView");
		setVisible(true);
	}
}

//model tabela

import java.util.Observable;
import java.util.Observer;

import javax.swing.table.DefaultTableModel;
import javax.swing.table.TableModel;

public class JPaintTableModel implements Observer 
{
	private JPaintGraphicModel pgm;
	private Object[][] prim;
	private String[] colNomes;
	private DefaultTableModel tmdPtm;
	
	public JPaintTableModel(JPaintGraphicModel pgm)
	{
		pgm.addObserver(this);
		this.pgm = pgm;
		colNomes = new String[]{"Nome", "Tipo", "X1",
		"Y1", "X2", "Y2", "Cor Borda", "Cor Pre..."};
		tmdPtm = new DefaultTableModel(prim,colNomes);
	}

	public void update(Observable arg0, Object arg1) 
	{
		for (int i = 0; i < pgm.getVPrim().length; i++)
		{
			prim[i][0] = pgm.getVPrim()[i].getClass().getName();
			prim[i][1] = pgm.getVPrim()[i].getClass().getName();
			prim[i][2] = Integer.toString(pgm.getVPrim()[i].getP1().x);
			prim[i][3] = Integer.toString(pgm.getVPrim()[i].getP1().y);
			prim[i][4] = Integer.toString(pgm.getVPrim()[i].getP2().x);
			prim[i][5] = Integer.toString(pgm.getVPrim()[i].getP2().y);
			prim[i][6] = pgm.getVPrim()[i].getCorBor();
			prim[i][7] = pgm.getVPrim()[i].getCorPre();
		}
	}
	
	public String getColumnName(int col)
	{
        return colNomes[col].toString();
    }
	
    public int getRowCount()
    {
    	return prim.length;
    }
    
    public int getColumnCount()
    {
    	return colNomes.length;
    }

    public Object getValueAt(int row, int col)
    {
        return prim[row][col];
    }
    
    public boolean isCellEditable(int row, int col)
    {
    	return true;
    }
    
    public void setValueAt(Object value, int row, int col)
    {
        prim[row][col] = value;
        update(pgm, value);
    }
	
	public TableModel getTabModel()
	{
		return tmdPtm;
	}
}

[size=“11”][color=“red”]* Editado: Lembre-se de utilizar BBCode em seus códigos - Reifel[/color][/size] :joia: