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 楼答案
唯一可能导致这种情况的原因是
try
块中抛出的异常捕获到忽略:写空
catch
块是非常糟糕的做法,因为你实际上是在对自己隐藏问题首先,只需删除
try/catch
或打印异常:现在你会明白你的问题了。我猜它是
NumberFormatException
从Integer.parseInt()
抛出的,它是由错误的用户输入引起的我相信这不是不同平台上不同行为的问题,而是你在每个测试中输入的不同输入的问题