Считывание с TextField сразу в label

Создаю конвертер через Javafx. Сейчас он работает и значения конвертируются только после выбора единиц массы. Как сделать так, чтобы сразу при введении числа пользователем это значение с textField выводилось в label, параллельно, так сказать?

package com.example.converter;

import java.net.URL;
import java.util.ResourceBundle;

import javafx.beans.value.ChangeListener;
import javafx.beans.value.ObservableValue;
import javafx.event.ActionEvent;
import javafx.fxml.FXML;
import javafx.scene.control.*;
import javafx.scene.input.KeyEvent;

public class ConvertController {

    @FXML
    private ResourceBundle resources;

    @FXML
    private URL location;

    @FXML
    private Label gramm;


    @FXML
    private Label kg;

    @FXML
    private ChoiceBox<String> name;

    @FXML
    private TextField num_scanner;


    @FXML
    private Label tonna;
    @FXML
   public void addScan(ActionEvent event) {

    }

    @FXML
    public void choice(KeyEvent event) {

    }

    @FXML
    void initialize() {
        name.getItems().add("Тонн");
        name.getItems().add("Килограмм");
        name.getItems().add("Грамм");

        name.getSelectionModel().selectFirst();

        name.getSelectionModel().selectedIndexProperty().addListener(new ChangeListener<Number>() {
            @Override
            public void changed(ObservableValue<? extends Number> observableValue, Number number, Number t1) {
                if (num_scanner.getCharacters().length() > 0) {
                    setValues();
                }}
            });}


    private void setValues() {

        String numberUser = num_scanner.getCharacters().toString();
        int selectedIndex = name.getSelectionModel().getSelectedIndex();

            if (selectedIndex == 0) {
                tonna.setText(numberUser);
                kg.setText(String.valueOf(Integer.parseInt(numberUser)*1000));
                gramm.setText(String.valueOf(Integer.parseInt(numberUser)*1000000));
                   }
            else if (selectedIndex == 1) {
                tonna.setText(String.valueOf(Double.parseDouble(numberUser)/1000));
                kg.setText(numberUser);
                gramm.setText(String.valueOf(Integer.parseInt(numberUser)*1000));
            } else if (selectedIndex == 2) {
                tonna.setText(String.valueOf(Double.parseDouble(numberUser)/1000000));
                kg.setText(String.valueOf(Double.parseDouble(numberUser)/1000));
                gramm.setText(numberUser);}
        }
    }

Ответы (0 шт):