【问题标题】:Calculate Button Not outputting all numbers计算按钮不输出所有数字
【发布时间】:2015-03-11 02:56:07
【问题描述】:

我正在尝试编写“计算”按钮以按年份将未来值输出到列表模型中。我需要“修改计算按钮的 actionPerformed 事件,以便它不计算单个值,而是计算每年的未来值 tp 通过组合框选择的年份,并将显示每年计算的字符串添加到列表。”现在它运行良好,但跳过第一年并将第二年输出为 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;
}
}

【问题讨论】:

  • 您对代码的哪个特定部分有疑问?这看起来像是您的教授为您提供的通用框架;到目前为止,您对它做了什么?
  • calculateButtonActionPerformed。我需要更改代码,以便它将每年的未来值输出到列表模型中。它被设置为在一开始只输出一个答案。我只是不确定如何对其进行编码以将正确的信息输出到列表中。

标签: java defaultlistmodel


【解决方案1】:

您需要将 DefaultListModel 分配给一个变量,然后在该变量上使用 jList1.setModel。在计算函数中,然后更新 DefaultListModel 变量而不是 jList1。

比如:

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

【讨论】:

  • 那么我应该把 AbstractListModel 放在哪里呢?它不会让我把它放在计算按钮部分。
  • 可以在底部加上其他变量,然后在计算代码中初始化和jList.setModel。
  • 我的小错误,您无法实例化 AbstractListModel... 将其更改为 DefaultListModel。
  • 好的,我让它输出列表模型上的数字。现在我需要它来逐年分解答案。它只输出单年。
  • 检查计算函数中 for 循环的值。从 3 年开始,它会为我显示多个值。
猜你喜欢
  • 1970-01-01
  • 2013-01-28
  • 1970-01-01
  • 2012-03-09
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多