为JFormattedTextField分配一个Float

时间:2012-06-21 23:34:14

标签: java swing jformattedtextfield

我正在用一个简单的贷款计算器和gui一起使用swing。我使用DecimalFormat来确保以指定的格式捕获输入####。## for my JFormattedTextField。

public static void main(String[] args) {
    JFormattedTextField loanAmountField = new JFormattedTextField(new DecimalFormat("####.##"));
    JFormattedTextField interestRateField = new JFormattedTextField(new DecimalFormat("####.##"));
    JFormattedTextField yearField = new JFormattedTextField(new DecimalFormat("####.##"));
    JFormattedTextField monthlyPaymentField = new JFormattedTextField(new DecimalFormat("####.##"));
}

当用户按下“计算”按钮时,它会计算并显示monthlyPaymentField。

为了测试我的程序是否会正确显示它,我尝试将monthlyPaymentField赋值为12.22,但是我收到一条错误,指出monthlyPaymentField应该声明为double。

class CalculateListener implements ActionListener {
public CalculateListener (JFormattedTextField loanAmountField, JFormattedTextField     monthlyPaymentField, JFormattedTextField interestRateField, JFormattedTextField yearField, int monthlyTest)
{
  this.interestRateField = interestRateField;   
  this.yearField = yearField;
  this.loanAmountField = loanAmountField;
  this.monthlyPaymentField = monthlyPaymentField;
  this.monthlyTest = monthlyTest;
}

public void actionPerformed(ActionEvent event){

   monthlyPaymentField = 12.22;

    }

}

如何解决这个问题,以便我仍然可以将我的JFormattedTextField与DecimalFormat一起使用,但仍可以在monthlyPaymentField上显示Float?

2 个答案:

答案 0 :(得分:2)

您可以使用setValue方法;

monthlyPaymentField.setValue(new Double(12.22)); 

答案 1 :(得分:1)

使用setValue,即:

monthlyPaymentField.setValue(new Double(12.22));

How to Use Formatted Text Fields教程有一个很好的双打示例。