这段代码是我将转换为 swing(使用JTextField
和DocumentListener
)的程序的简化版本。我已经阅读了一些教程,但我做不到......我不应该使用全局变量,我必须使用一些类似getSource()
(getDocument()
在这种情况下?),因为在原始程序中 JTextField 的数量是可变的(它们是在 a 中生成for
,因此它们没有“名称”)。此数字取决于写入文本文件中的值。
import java.awt.*;
import java.awt.event.*;
class TestWindow extends Frame {
public TestWindow() {
Panel p = new Panel(new FlowLayout());
Label l = new Label("Temp");
TextField tf1 = new TextField();
TextField tf2 = new TextField();
tf1.addTextListener(new myTextListener(l));
tf2.addTextListener(new myTextListener(l));
p.add(tf1);
p.add(tf2);
tf1.setColumns(10);
tf2.setColumns(10);
p.add(l);
add(p);
pack();
setVisible(true);
}
class myTextListener implements TextListener {
Label input;
myTextListener(Label input) {
this.input = input;
}
public void textValueChanged(TextEvent e) {
input.setText(((TextField)(e.getSource())).getText());
}
}
}
public class Test {
public static void main(String[] args) {
new TestWindow();
}
}