有一段过时的Java代码,选自《Java大学教程》这本书1.17节。代码如下:
/**
* Addition program
*/
package ch01;
import java.applet.Applet;
import java.awt.Event;
import java.awt.Label;
import java.awt.TextField;
public class Addition extends Applet
{
/**
* setup the graphical user interface components and initialize variables
*/
public void init()
{
prompt = new Label("Enter integer and press Enter: ");
add(prompt); //put prompt on applet
input = new TextField(10);
add(input); //put input on applet
sum = 0;
}
/**
* process user's action on the input text field
*/
public boolean action(Event e, Object o)
{
number = Integer.parseInt(o.toString()); //get number
sum += number; //add number to sum
input.setText(""); //clear data entry field
showStatus(Integer.toString(sum)); //show result
return true; //indicates user's action was processed
}
/**
* prompt user to input
*/
private Label prompt;
/**
* input values here
*/
TextField input;
/**
* store input value
*/
int number;
/**
* store sum of integers
*/
int sum;
private static final long serialVersionUID = 1L;
}
但是最终执行的时候发现,每次按回车键的时候,文本框中的内容并没有被清除掉,而是留在那里。
我记得以前也执行过这段代码,但没有这种现象,这次试了OpenJDK 1,7和Oracle的JDK 1.8都是相同的结果。
谁能解释一下为什么?