我正在扩展一个JFormattedTextField以添加一个侦听器。我有这方面的工作,虽然这可能不是最好的方法。难道没有一种方法可以使用单一的通用构造函数吗?
public class TimeLineTextClass extends JFormattedTextField {
/**
*
*/
private static final long serialVersionUID = 1L;
private TimelineRecord timeLine;
public TimeLineTextClass (NumberFormat tlformat_,HashMap<Integer,JComponent> fieldList_,int field_,TimelineRecord timeLine_) {
super(tlformat_);
timeLine=timeLine_;
getDocument().addDocumentListener(new DocumentListener() {
@Override
public void changedUpdate(DocumentEvent e) {
// Ignore - Using plain document
}
@Override
public void insertUpdate(DocumentEvent e) {
timeLine.setObject((String) getClientProperty("type"),getText());
}
@Override
public void removeUpdate(DocumentEvent e) {
timeLine.setObject((String) getClientProperty("type"),getText());
}
});
}
public TimeLineTextClass (SimpleDateFormat tlformat_,HashMap<Integer,JComponent> fieldList_,int field_,TimelineRecord timeLine_) {
super(tlformat_);
timeLine=timeLine_;
getDocument().addDocumentListener(new DocumentListener() {
@Override
public void changedUpdate(DocumentEvent e) {
// Ignore - Using plain document
}
@Override
public void insertUpdate(DocumentEvent e) {
timeLine.setObject((String) getClientProperty("type"),(String) getText());
}
@Override
public void removeUpdate(DocumentEvent e) {
timeLine.setObject((String) getClientProperty("type"),(String) getText());
}
});
}
}似乎应该有一种方法只使用一个构造函数,其中包含一个泛型格式类型作为第一个参数,并用于“Super”。蒂娅。
发布于 2017-07-01 12:37:13
就像JFormattedTextField构造函数一样,您可以使用Format类型来捕获NumberFormat类型和SimpleDateFormat类型。
https://stackoverflow.com/questions/44859378
复制相似问题