计算按钮不输出所有数字

时间:2015-03-11 02:56:07

标签: java defaultlistmodel

我正在尝试编写“计算”按钮,以便按年将“未来值”输出到“列表模型”中。我需要“修改计算按钮的actionPerformed事件,以便不计算单个值,而是计算通过组合框选择的年份的每年的未来值,并添加一个字符串,显示每年的计算结果。清单“。现在它运行得很好,但跳过第一年并输出第二年为0 $。

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;
}
}

1 个答案:

答案 0 :(得分:0)

您需要将DefaultListModel分配给变量,然后对变量使用jList1.setModel。在calculate函数中,然后更新DefaultListModel变量而不是jList1。

类似于:

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