package fi.lpam.gui.tableCell; import javafx.scene.control.TableCell; import javafx.scene.control.TableColumn; import javafx.scene.control.cell.TextFieldTableCell; import javafx.scene.input.KeyEvent; import javafx.util.Callback; import javafx.util.converter.IntegerStringConverter; public class IntegerFieldTableCellFactory implements Callback, TableCell> { @Override public TableCell call(TableColumn param ) { return new TextFieldTableCell<>(new IntegerStringConverter()) { private boolean filterSet = false; @Override public void startEdit() { super.startEdit(); if (!filterSet) { getGraphic().addEventFilter(KeyEvent.KEY_TYPED, KE -> { if (!"0123456789".contains(KE.getCharacter())) { KE.consume(); } }); filterSet = true; } } }; } }