我认为这很容易,显然我不懂DocumentListeners。我创建了一个JFormattedTextField扩展来包含一个监听器,以便我可以使用更改的字段文本更新哈希映射。
package stokerMonitor;
import java.util.HashMap;
import javax.swing.JFormattedTextField;
import javax.swing.event.DocumentEvent;
import javax.swing.event.DocumentListener;
public class TimeLineTextClass extends JFormattedTextField {
/**
*
*/
private static final long serialVersionUID = 1L;
private HashMap<Integer,Object> fieldList;
private int field;
public TimeLineTextClass (Object tlformat_,HashMap<Integer,Object> fieldList_,int field_) {
super(tlformat_);
fieldList=fieldList_;
field=field_;
getDocument().addDocumentListener(new DocumentListener() {
@Override
public void changedUpdate(DocumentEvent e) {
// Ignore - Using plain document
}
@Override
public void insertUpdate(DocumentEvent e) {
fieldList.put(field,????);
}
@Override
public void removeUpdate(DocumentEvent e) {
fieldList.put(field,????);
}
});
}
}
在阅读完文档后,我无法弄清楚如何在事件处理程序中获取更改的文本。似乎没有getText方法。我怎么用'????'? TIA。
答案 0 :(得分:1)
当[MYDATA] => Array
(
[id] => 79
[my_birth_day] => 1990-06-20
[my_address] => 400
[my_age] => 26
[my_name] => Joy
[my_id] => 1
[created] => 2017-06-19 15:39:44
[my_test] => math
[my_date] => 2017-08-13
扩展TimeLineTextClass
时,你会发现实际上有一个getText()方法。
JFormattedField
上面的代码应该可以正常工作。