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

            AccountTransaction r = listData.get(row);
            Object value;
            double amount;

            switch (column) {
                case 0:                             // Date
                    value = r.transaction.getDate();
                    break;

                case 1:                             // Description
                    value = r.transaction.getName();
                    break;

                case 2:                             // Memo
                    value = r.transaction.getMemo();
                    break;

                case 3:                             // Decrease
                    amount = r.transaction.getAmount();
                    if (amount < 0.0)
                        value = new Double(-amount);
                    else
                        value = null;
                    break;

                case 4:                             // Increase
                    amount = r.transaction.getAmount();
                    if (amount >= 0.0)
                        value = new Double(amount);
                    else
                        value = null;
                    break;

                case 5:                             // Balance
                    value = new Double(r.balance);
                    break;

                default:
                    throw new IndexOutOfBoundsException("Table column "+column+" is not valid");
            }

            return value;
        }