问题描述
- 一段过时的Java代码的问题
-
有一段过时的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都是相同的结果。
谁能解释一下为什么?
时间: 2024-09-30 17:54:43