Считывание с 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);}
}
}