从JTextfields检索整数并将它们应用于总和

时间:2016-04-17 19:02:02

标签: java swing parsing

我有一些JTextfield根据特定事件进行更改,例如,如果勾选了一个框,则文本字段的内容会从0更改为35

我正在尝试将文本字段的值添加到一起,但似乎无法做到。

int f1 = 35;
int f2 = 18;

apple.setText("" + f1);
pear.setText("" + f2);

这是我到目前为止所拥有的

int result = Integer.parseInt(apple.getText() + Integer.parseInt(pear.getText());
                total.setText("" +  result);

当我需要将3518f1加在一起时,结果会给我f2

3 个答案:

答案 0 :(得分:2)

你正在做的是首先连接两个字符串,然后解析生成的字符串 - 而不是你想要的。您要做的是在之前单独解析文本将它们添加到一起。

try {
    int appleInt = Integer.parseInt(apple.getText());
    int pearInt = Integer.parseInt(pear.getText());

    int result = appleInt + pearInt;

    // do something with result

} catch (NumberFormatException nfe) {
    // warn user that text is wrong
    // clear text fields
}

答案 1 :(得分:0)

你应该做

int result = Integer.parseInt(apple.getText()) + Integer.parseInt(pear.getText());

您的代码首先将pear文本转换为Integer并将其总和为Apple文本String(int + String = String),然后将total转换为Integer,但是当将int与String相加时,您只将两者连接起来值;相反,你需要将字符串转换为整数然后将它们相加。

不要忘记检查字符串的值是否实际为整数,否则程序将抛出NumberFormatException。

答案 2 :(得分:0)

试试这个

int result = Integer.parseInt(apple.getText()) + Integer.parseInt(pear.getText());

而不是:

int result = Integer.parseInt(apple.getText() + Integer.parseInt(pear.getText());

这里我实际上已经单独解析了apple.getText()pear.getText(),然后添加了整数来获得结果。在您上传的代码中,您基本上将apple.getText()与整数解析后的值pear.getText()

连接起来