首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >在Mac上使用Applet将两个数字相加,结果总是为0

在Mac上使用Applet将两个数字相加,结果总是为0
EN

Stack Overflow用户
提问于 2016-03-05 00:11:46
回答 1查看 130关注 0票数 0
代码语言:javascript
复制
import java.awt.*;
import java.applet.*;

public class userin extends Applet
{
TextField text1, text2;
public void init( )
{
    text1 = new TextField(8);
    text2 = new TextField(8);
    add (text1);
    add (text2);
    text1.setText ("0");
    text2.setText ("0");
}
public void paint (Graphics g)
{
    int x = 0, y = 0, z = 0;
    String s1, s2, s;
    g.drawString("input a number in each box", 10, 50);
    try
    {
        s1 = text1.getText( );
        x = Integer.parseInt(s1);
        s2 = text2.getText( );
        y = Integer.parseInt(s2);
    }
    catch (Exception ex) { }
    z = x + y;
    s = String.valueOf (z);
    g.drawString ("THE SUM IS:", 10, 75);
    g.drawString (s, 100, 75);
}
public boolean action (Event event, Object object)
{
    repaint ( );
    return true;
}

}

下面的代码在windows上运行得很好,并给出了2个数字的总和,但当我在Netbeans或Eclipse中的mac上使用它时,代码运行,但sum始终为0。我不知道是什么导致了这个问题,如果有人能帮上忙,那就太好了。

EN

回答 1

Stack Overflow用户

发布于 2016-03-05 00:26:08

可能导致这种情况的唯一原因是在try代码块中抛出的异常,因为您捕获了一个忽略:

代码语言:javascript
复制
try {
   .......
} catch (Exception e) {}

编写空的catch块是非常糟糕的做法,因为您实际上是在对自己隐藏问题。

首先,完全删除你的try/catch或者打印异常:

代码语言:javascript
复制
try {
      ...........
} catch (Exception e) {
     e.printStackTrace();
}

现在您将看到您的问题所在。我猜这是Integer.parseInt()抛出的NumberFormatException,它是由错误的用户输入引起的。

我相信这不是在不同平台上的不同行为的问题,而是你在每个测试中输入的不同输入的问题。

票数 4
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/35800742

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档