javafx StringConverter最后一个对象

 2023-02-16    346  

问题描述

我有一个创建可编辑listView的问题.

所以我有一个带有两个字段的城市课:id和name,我已经从数据库中创建了一个城市的观察者,并将其分配给我的listView,我创建了我的cellfactory:

javafx StringConverter最后一个对象

@DatabaseTable(tableName = "city")
public class City {

    @DatabaseField(generatedId = true)
    private int id;

    @DatabaseField
    private String name;

    public City() {}
}

citiesList.setCellFactory(new Callback<ListView<City>, ListCell<City>>() {

            @Override
            public ListCell<City> call(ListView<City> param) {

                ListCell<City> cells = new TextFieldListCell<>(new StringConverter<City>() {

                    @Override
                    public String toString(City object) {
                        return object.getName().trim();
                    }

                    @Override
                    public City fromString(String string) {
                        // how to modify the object that was in the cell???
                        return null;
                    }
                });

                return cells;
            }
        });

我想知道是否有可能在称为fromString时获取单元格(城市)中当前值的参考.

我想这样做以允许用户更改城市名称而无需更改其ID字段.

推荐答案

如果首先创建单元格,则创建转换器,可以在转换器中引用cell.getItem().以下似乎有效:

citiesList.setCellFactory(lv -> {
    TextFieldListCell<City> cell = new TextFieldListCell<City>();
    StringConverter<City> converter = new StringConverter<City>() {

        @Override
        public String toString(City city) {
            return city.getName();
        }

        @Override
        public City fromString(String string) {
            City city = cell.getItem();
            if (city == null) {
                City newCity = new City();
                newCity.setName(string);
                return newCity;
            } else {
                city.setName(string);
                return city ;
            }
        }

    };

    cell.setConverter(converter);

    return cell ;
});

以上所述是小编给大家介绍的javafx StringConverter最后一个对象,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对77isp云服务器技术网的支持!

原文链接:https://77isp.com/post/33852.html

=========================================

https://77isp.com/ 为 “云服务器技术网” 唯一官方服务平台,请勿相信其他任何渠道。