From ead13842c8a56f2e70f69e7321a38619f02c3560 Mon Sep 17 00:00:00 2001 From: Sem van der Hoeven Date: Wed, 4 Mar 2020 21:40:34 +0100 Subject: [PATCH] made textfield numeric --- .../java/webcrawler/visualiser/Visualiser.java | 18 +++++++++++++++++- 1 file changed, 17 insertions(+), 1 deletion(-) diff --git a/src/main/java/webcrawler/visualiser/Visualiser.java b/src/main/java/webcrawler/visualiser/Visualiser.java index 665e4b0..15c5755 100644 --- a/src/main/java/webcrawler/visualiser/Visualiser.java +++ b/src/main/java/webcrawler/visualiser/Visualiser.java @@ -2,6 +2,8 @@ package main.java.webcrawler.visualiser; import javafx.animation.AnimationTimer; import javafx.application.Application; +import javafx.beans.value.ChangeListener; +import javafx.beans.value.ObservableValue; import javafx.geometry.HPos; import javafx.geometry.Insets; import javafx.geometry.Pos; @@ -68,6 +70,7 @@ public class Visualiser extends Application { TextField wordField = new TextField(); wordField.setPromptText("Enter the word to search for"); TextField amountField = new TextField(); + makeNumeric(amountField); amountField.setPromptText("Maximum amount of pages the crawler should visit.."); VBox content = new VBox(10); content.setAlignment(Pos.CENTER_LEFT); @@ -78,7 +81,7 @@ public class Visualiser extends Application { urlField, new Label("Word to search for:"), wordField, - new Label("Maximum amount of pages the crawler should visit:"), + new Label("Maximum amount of pages:"), amountField); top.getChildren().add(content); @@ -90,6 +93,19 @@ public class Visualiser extends Application { } + private void makeNumeric(TextField textField) { + // force the field to be numeric only + textField.textProperty().addListener(new ChangeListener() { + @Override + public void changed(ObservableValue observable, String oldValue, + String newValue) { + if (!newValue.matches("\\d*")) { + textField.setText(newValue.replaceAll("[^\\d]", "")); + } + } + }); + } + public void draw(FXGraphics2D graphics) { graphics.setBackground(new Color(43, 43, 46)); graphics.clearRect(0, 0, (int) canvas.getWidth(), (int) canvas.getHeight());