package qls.gui.widget.input; import javax.swing.SwingUtilities; import ql.Value; import qls.gui.widget.InputWidget; import qls.gui.widget.WidgetStylizer; public abstract class Field<T extends Value> extends ql.gui.widget.input.Field<T> implements InputWidget<T> { protected WidgetStylizer stylizer; public Field(T initialValue) { super(initialValue); stylizer = new WidgetStylizer(); } @Override public final void setValue(T newValue) { Runnable changeValue = new Runnable() { @Override public void run() { value(newValue); textField().setText(convertValue(value())); } }; SwingUtilities.invokeLater(changeValue); }; public abstract String convertValue(Value value); }