0
這段代碼是我將轉換爲swing的程序的簡化版本(使用JTextField
和DocumentListener
)。我已經閱讀了一些教程,但我不能這樣做... 我不應該使用全局變量,我必須使用一些像getSource()
(getDocument()
在這種情況下?),因爲在原始程序中JTextField的數量是可變的(它們在for
內生成,所以它們沒有「名稱」)。該數字取決於寫入文本文件的值。使用TextField轉換Java程序以擺動JTextField
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();
}
}
非常感謝! – xonya
@xonya:另請參見[初始線程](http://download.oracle.com/javase/tutorial/uiswing/concurrency/initial.html)。 – trashgod