2015-03-11 3 views
-2

Я пытаюсь закодировать мою кнопку Calculate для вывода будущей стоимости в модель списка по годам. Мне нужно «Изменить событие actionPerformed для кнопки Calculate, чтобы вместо вычисления одного значения оно вычисляло будущее значение для каждого года до tp год, выбранный через поле со списком, и добавляет строку, показывающую расчет за каждый год список." Сейчас он отлично работает, но пропускает первый год и выводит второй год как 0 $.Calculate Button Не выводить все числа

private void calculateButtonActionPerformed(java.awt.event.ActionEvent evt)  { 
if (isValidData()) 
{ 
double p = Double.parseDouble(monthlyPaymentTextField.getText()); 
double r = Double.parseDouble(yearlyRateTextField.getText()); 
int y = numberofyears.getSelectedIndex(); 

NumberFormat currency = NumberFormat.getCurrencyInstance(); 
DefaultListModel alm = new DefaultListModel(); 
jList1.setModel(alm); 
for(int i = 0; i < y; i++) 
{ 
double fv = FinancialCalculations.calculateFutureValue(p, r, i); 
alm.addElement(currency.format(fv)); 
} 

} 
} 

Вот код Финансовые расчеты, если это поможет:

package murach.business; 

public class FinancialCalculations 
{ 
public static final int MONTHS_IN_YEAR = 12; 

public static double calculateFutureValue(double monthlyPayment, 
double yearlyInterestRate, int years) 
{ 
int months = years * MONTHS_IN_YEAR; 
double monthlyInterestRate = yearlyInterestRate/MONTHS_IN_YEAR/100; 
double futureValue = 0; 
for (int i = 1; i <= months; i++) 
{ 
futureValue = (futureValue + monthlyPayment) * 
(1 + monthlyInterestRate); 
} 
return futureValue; 
} 
} 
+0

Какие конкретные части кода вы возникли проблемы с? Это похоже на общую структуру, которую предоставил вам ваш профессор; что вы с ним сделали до сих пор? –

+0

ВычислениеButtonActionPerformed. Мне нужно изменить код, чтобы он выводил будущее значение для каждого года в модель списка. Он был настроен только для вывода одного ответа в начале. Я просто не уверен, как закодировать его для вывода правильной информации в список. –

ответ

0

Вам нужно назначить DefaultListModel переменной, а затем использовать jList1.setModel на переменную. В функции расчета затем обновите переменную DefaultListModel вместо jList1.

Так что-то вроде:

DefaultListModel alm = new DefaultListModel(...); 
jList1.setModel(alm); 
alm.addElement(...); 
+0

Итак, где я должен поставить AbstractListModel? Это не позволит мне поместить его в часть кнопки расчета. –

+0

Его можно добавить с другими переменными внизу, затем инициализировать его и jList.setModel в коде вычисления. –

+0

Небольшая ошибка с моей стороны, вы не можете создать экземпляр AbstractListModel ... измените его на DefaultListModel. –