Как насчет этого, вы в основном переопределяете getValueAt (int row, int column).Вот тестовый класс:
package so.pivot;
import javax.swing.JFrame;
import javax.swing.JTable;
public class Test extends JFrame{
public static void main(String[] args){
Test test = new Test();
String[] columnNames = {"First Name",
"Last Name",
"Sport",
"# of Years",
"Vegetarian"};
Object[][] data = {
{"Kathy", "Smith",
"Snowboarding", new Integer(5), new Boolean(false)},
{"John", "Doe",
"Rowing", new Integer(3), new Boolean(true)},
{"Sue", "Black",
"Knitting", new Integer(2), new Boolean(false)},
{"Jane", "White",
"Speed reading", new Integer(20), new Boolean(true)},
{"Joe", "Brown",
"Pool", new Integer(10), new Boolean(false)}
};
JTable table = new JTable(data, columnNames){
@Override
public Object getValueAt(int row, int column){
return super.getValueAt(column, row);
}
};
test.add(table);
test.pack();
test.setVisible(true);
}
}