扩展 JFormattedTextField
Extend JFormattedTextField
我正在扩展 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'。 TIA.
就像 JFormattedTextField 构造函数一样,您可以使用类型 Format
来捕获 NumberFormat
类型和 SimpleDateFormat
类型。
我正在扩展 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'。 TIA.
就像 JFormattedTextField 构造函数一样,您可以使用类型 Format
来捕获 NumberFormat
类型和 SimpleDateFormat
类型。