我想这会很容易,因为我显然不理解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方法。我怎么用“?”?蒂娅。
发布于 2017-06-22 18:26:25
当TimeLineTextClass扩展JFormattedField时,您会发现实际上有一个getText()方法。
@Override
public void insertUpdate(DocumentEvent e) {
fieldList.put(field,getText());
}
@Override
public void removeUpdate(DocumentEvent e) {
fieldList.put(field,getText());
}上面的代码应该可以正常工作。
https://stackoverflow.com/questions/44696550
复制相似问题