public Object getValueAt(int row, int column) {
        if (row >= listData.size())
            throw new IndexOutOfBoundsException("Table row "+row+" is not valid");

        AmortizationElement element = listData.get(row);
        Object value;
        switch (column) {
            case 0:                             // Payment date
                value = element.getDate();
                break;

            case 1:                             // Interest payment
                value = element.getInterest();
                break;

            case 2:                             // Interest adjustment
                value = element.getAdjustment();
                break;

            case 3:                             // Updated cost basis
                value = element.getCostBasis();
                break;
                
            default:
                throw new IndexOutOfBoundsException("Table column "+column+" is not valid");
        }

        return value;
    }