有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

java在Mac上使用Applet添加两个数字时,得到的和总是0

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上使用它时,代码会运行,但总和始终为0。 我不知道是什么导致了这个问题,如果有人能帮上忙就好了


共 (1) 个答案

  1. # 1 楼答案

    唯一可能导致这种情况的原因是try块中抛出的异常捕获到忽略:

    try {
       .......
    } catch (Exception e) {}
    

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

    首先,只需删除try/catch或打印异常:

    try {
          ...........
    } catch (Exception e) {
         e.printStackTrace();
    }
    

    现在你会明白你的问题了。我猜它是NumberFormatExceptionInteger.parseInt()抛出的,它是由错误的用户输入引起的

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