java fx-切换切换栏后更新texfield-小错误

时间:2018-11-12 19:35:55

标签: java javafx

我下面的代码部分有问题

    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程序中键入数字,则只能读取texfield的第一位数字,因此如果滑块为3,则得到结果15

在将第一个数字传递给Textfield后,看起来数据已被拉出,我该如何解决?

1 个答案:

答案 0 :(得分:0)

不是您的问题的答案,但是从用户的角度来看,显示价格*天数的标签会不会更简单,更直观?为什么要直接更改文本字段?

要回答您的问题,请将baseCost更改为int而不是List。 (除非我遗漏某些东西,否则我仍然无法弄清楚为什么您需要在此处添加列表)