fx - обновление текстового поля после смены тумблера - небольшая ошибка - PullRequest
0 голосов
/ 12 ноября 2018

У меня проблема с нижней частью кода

    ArrayList<Integer> baseCost = new ArrayList<>();

    priceTextField.textProperty().addListener(new ChangeListener() {

        @Override
        public void changed(ObservableValue arg0, Object arg1, Object arg2) {

            baseCost.add(Integer.parseInt(priceTextField.getText()));
        }
    });

    daysSlider.valueProperty().addListener(new ChangeListener() {

        @Override
        public void changed(ObservableValue arg0, Object arg1, Object arg2) {

            priceTextField.textProperty().setValue(String.valueOf((int) daysSlider.getValue() * baseCost.get(0)));

        };

    });

Программа работает следующим образом:
Я обновляю данные в форме addCar.fxml, после нажатия кнопки сохранения автомобиль добавляется в мою базу данных. Я набираю цифру в текстовом поле, если ползунок установлен, например, на 3 номера текстового поля, автоматически обновляется до текстового поля * 3

Значение слайдера имеет диапазон от 1 до 10

Проблема:
Если я вставлю число из буфера обмена, например, 500, то ползунок 3, я получу значение 1500 - это правильно

но если я наберу число с клавиатуры, 5 + 0 + 0 программа прочитает только первую цифру из текстового поля, поэтому, если ползунок равен 3, я получу результат 15

Похоже, что данные извлекаются после того, как первая цифра передана в Textfield, как я могу обойти это?

1 Ответ

0 голосов
/ 12 ноября 2018

Не является ответом на вашу проблему, но не будет ли ярлык для отображения цены * дни намного проще и понятнее с точки зрения пользователя? Почему вы хотите изменить текстовое поле напрямую?

Чтобы ответить на ваш вопрос, измените baseCost на int вместо List. (Я до сих пор не могу понять, зачем вам нужен список, если я что-то упустил)

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...