一个jtextfields中的jtextfields的总和值

时间:2016-10-02 19:30:34

标签: java swing numbers jtextfield parseint

我想找到jtextfields的总和(sht1到sht13)并将结果放在llog jtextfield中,但如果我不在每个jtextfield(sht1到sht13)中放置值,它就不会工作  我如何修复我的代码,以便它只采用我选择将值放在

上的jtextfields的值
public class Wrapper
{
    public _CommentAdmindto Result { get; set; }
}
public class _CommentAdmindto
{
    public long dateTime { get; set; }

    public IEnumerable<CommentDtoAdmin> list { get; set; }
}

1 个答案:

答案 0 :(得分:1)

建议:

  • 将您的JTextField放入ArrayList<JTextField>
  • 在上面的代码中,使用for循环遍历此列表。
  • 在循环内部,解析字段。如果解析失败,请忽略NumberFormatException - 但最重要的是,不要尝试将任何结果(这些都没有意义)添加到您的总和中。换句话说,将解析后的值添加到try块中的总和中,并将catch块留空(少数几次也可以这样做)。

如,

// note that likely you should be using an ActionListener not a MouseListener
private void myButtonActionPerformed(java.awt.event.ActionEvent e) {
    int sum = 0;
    // assuming a JTextField ArrayList<JTextField> called vFieldList
    for (JTextField  vField : vFieldList) {
        String text = vField.getText().trim();  // get text and trim out all outside whitespace
        try {
            int value = Integer.parseInt(text);

            // if exception thrown, this line won't be reached
            sum += value;  // add value to sum
        } catch (NumberFormatException nfe) {
            // ignore exception
        }
    }

    llog.setText("" + sum);
}

您是否通过使用列表和for循环看到了这种情况如何简化代码,使调试或增强更容易?

更好的是:

  • 根本不使用JTextFields,而是将初始化为0的JSpinner捆绑在一起。