aboutsummaryrefslogtreecommitdiffstats
path: root/src/jcgp/gui/settings/parameters/GUIDoubleParameter.java
diff options
context:
space:
mode:
Diffstat (limited to 'src/jcgp/gui/settings/parameters/GUIDoubleParameter.java')
-rw-r--r--src/jcgp/gui/settings/parameters/GUIDoubleParameter.java7
1 files changed, 5 insertions, 2 deletions
diff --git a/src/jcgp/gui/settings/parameters/GUIDoubleParameter.java b/src/jcgp/gui/settings/parameters/GUIDoubleParameter.java
index f177ffa..777e739 100644
--- a/src/jcgp/gui/settings/parameters/GUIDoubleParameter.java
+++ b/src/jcgp/gui/settings/parameters/GUIDoubleParameter.java
@@ -36,6 +36,7 @@ public class GUIDoubleParameter extends GUIParameter<Number> {
@Override
protected Control makeControl() {
+ // we use a text field, and a formatting class to enforce decimals
decimalFormat = new DecimalFormat();
decimalFormat.setMaximumFractionDigits(10);
textField = new TextField(decimalFormat.format(parameter.get().doubleValue()));
@@ -48,14 +49,16 @@ public class GUIDoubleParameter extends GUIParameter<Number> {
@Override
protected void setControlListeners() {
/* pass the TextField value back to the parameter whenever it gets
- * modified, provided it is not empty and the experiment isn't running */
+ * modified, provided it is not empty, the experiment isn't running
+ * and it matches the double-precision regex filter */
textField.textProperty().addListener(new ChangeListener<String>() {
@Override
public void changed(
ObservableValue<? extends String> observable,
String oldValue, String newValue) {
if (!settingsPane.isExperimentRunning()) {
- if (newValue.matches("([0-9]*[.]*[0-9]*)")) {
+ //if (newValue.matches("([0-9]*[.]?[0-9]*)")) {
+ if (newValue.matches("^[-+]?[0-9]*\\.?[0-9]+$")) {
if (!newValue.isEmpty()) {
double value = Double.parseDouble(newValue);
parameter.set(value);