|
|
@@ -13,22 +13,36 @@ public class NumberTextField extends JFormattedTextField {
|
|
|
*/
|
|
|
private static final long serialVersionUID = 1L;
|
|
|
|
|
|
- private static final NumberFormatter getNumberFormatInstance(int min, int max) {
|
|
|
+ private static final <T> NumberFormatter getNumberFormatInstance(Class<T> clazz,
|
|
|
+ Comparable<T> min, Comparable<T> max) {
|
|
|
NumberFormat format = NumberFormat.getInstance();
|
|
|
NumberFormatter formatter = new NumberFormatter(format);
|
|
|
- formatter.setValueClass(Integer.class);
|
|
|
+ formatter.setValueClass(clazz);
|
|
|
formatter.setMinimum(min);
|
|
|
formatter.setMaximum(max);
|
|
|
formatter.setAllowsInvalid(true);
|
|
|
+ formatter.setCommitsOnValidEdit(false);
|
|
|
return formatter;
|
|
|
}
|
|
|
|
|
|
public NumberTextField() {
|
|
|
- super(getNumberFormatInstance(0, Integer.MAX_VALUE));
|
|
|
+ super(getNumberFormatInstance(Integer.class, 0, Integer.MAX_VALUE));
|
|
|
+ }
|
|
|
+
|
|
|
+ public NumberTextField(int min) {
|
|
|
+ super(getNumberFormatInstance(Integer.class, min, Integer.MAX_VALUE));
|
|
|
}
|
|
|
|
|
|
public NumberTextField(int min, int max) {
|
|
|
- super(getNumberFormatInstance(min, max));
|
|
|
+ super(getNumberFormatInstance(Integer.class, min, max));
|
|
|
+ }
|
|
|
+
|
|
|
+ public NumberTextField(double min) {
|
|
|
+ super(getNumberFormatInstance(Double.class, min, Double.MAX_VALUE));
|
|
|
+ }
|
|
|
+
|
|
|
+ public NumberTextField(double min, double max) {
|
|
|
+ super(getNumberFormatInstance(Double.class, min, max));
|
|
|
}
|
|
|
|
|
|
@Override
|