我有一个在运行时生成的JTextField的ArrayList,这些列表由JTable中的选定行填充。我想允许用户编辑JTextField内部的值,以便以后更改数据库并更新JTable,但是我很难找出编辑了哪个JTextField。
for(int i = 0; i < detailTextFields.size(); i++) {
detailTextFields.get(i).getDocument().addDocumentListener(new DocumentListener() {
public void changedUpdate(DocumentEvent e) {
something(e);
}
public void removeUpdate(DocumentEvent e) {
something(e);
}
public void insertUpdate(DocumentEvent e) {
something(e);
}
public void something(DocumentEvent e) {
System.out.println(e);
}
});
}
我目前通过对每个JTextField的DocumentListener进行硬编码来完成此工作,但是JTextField的数量可能会有所不同,具体取决于所选的选项卡,因此我将不再使用它:
JTextField pid = detailTextFields.get(0);
JTextField sid = detailTextFields.get(1);
pid.getDocument().addDocumentListener(new DocumentListener() {
public void changedUpdate(DocumentEvent e) {
something(e);
}
public void removeUpdate(DocumentEvent e) {
something(e);
}
public void insertUpdate(DocumentEvent e) {
something(e);
}
public void something(DocumentEvent e) {
System.out.println(e);
}
});
sid.getDocument().addDocumentListener(new DocumentListener() {
public void changedUpdate(DocumentEvent e) {
something(e);
}
public void removeUpdate(DocumentEvent e) {
something(e);
}
public void insertUpdate(DocumentEvent e) {
something(e);
}
public void something(DocumentEvent e) {
System.out.println(e);
}
});
我该如何检索已编辑的JTextField,还是应该采用其他途径来获取此信息?