It should work in the analog Java Swing solution presented here .
, , -, - ENTER. , , , - , . ..
- , . , StringBuffer reset, .
KeyListener :
private final StringBuffer barcode = new StringBuffer();
private long lastEventTimeStamp = 0L;
public void keyTyped(KeyEvent keyEvent) {
long now = Instant.now().toEpochMilli();
if (now - this.lastEventTimeStamp > this.threshold) {
barcode.delete(0, barcode.length());
}
this.lastEventTimeStamp = now;
if (keyEvent.getCharacter().charAt(0) == (char) 0x000d) {
if (barcode.length() >= this.minBarcodeLength) {
System.out.println("barcode: " + barcode);
}
barcode.delete(0, barcode.length());
} else {
barcode.append(keyEvent.getCharacter());
}
keyEvent.consume();
}
, , , , FXML GridPane -. .
. KeyEvent.KEY_TYPED KeyCode, :
if (event.getCode().equals(KeyCode.ENTER)) {
}