0
我認爲這很容易顯然我不瞭解DocumentListeners。我創建了一個JFormattedTextField擴展來包含一個偵聽器,以便我可以使用更改的字段文本更新哈希映射。從DocumentListener獲取已更改的文本
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。
啊!我一直試圖使用'this.getText()'或'e.something.getText()'。謝謝。 –
不起作用的原因是因爲當您創建新的對象偵聽器時,由於範圍的原因,this將引用「DocumentListener」而不是「TimeLineText」類。 – DCON