Использование класса Callback - Java
Формулировка задачи:
Если кто-то сталкивался с подобным, помогите пожалуйста.
Задача: Отобразить все наименования класса "Role" из коллекции в виде выпадающего списка (а-ля ComboBox) строке таблицы TableView. Вот что должно получится (но не получается, сделано аферистским путем): Вот код, который не работает как надо:
Листинг программы
- ...
- TableColumn functionColumn = new TableColumn<>("Function"); //Колонка таблицы, помещается в TableView
- ---
- functionColumn.setCellValueFactory(new PropertyValueFactory<>("level")); //Загружаем в нее данные через фабрику
- ---
- functionColumn.setCellFactory(new Callback<TableColumn<Role, Role>, TableCell<Role, Role>>(){
- @Override
- public TableCell<Role, Role> call(TableColumn<Role, Role> param) {
- return new TableCell<Role, Role>(){
- @Override
- public void updateItem(Role r, boolean empty){
- super.updateItem(r, empty);
- if (empty){
- setText(null);
- }else{
- //setGraphic(null);
- setText(r.getName());
- }
- }
- };
- }
- });
- ...
Листинг программы
- public class Role {
- private int idRole;
- private StringProperty name = new SimpleStringProperty();
- private String description;
- public Role(){
- }
- public int getIdRole() {
- return idRole;
- }
- public void setIdRole(int idRole) {
- this.idRole = idRole;
- }
- public String getName() {
- return name.get();
- }
- public void setName(String name) {
- this.name.set(name);
- }
- public String getDescription() {
- return description;
- }
- public void setDescription(String description) {
- this.description = description;
- }
- }
Решение задачи: «Использование класса Callback»
textual
Листинг программы
- private final ObservableList<Role> functions
- = FXCollections.observableArrayList(
- new Role("ADMINISTRATOR"),
- new Role("MAIN_OPERATOR",),
- new Role("OPERATOR"),
- new Role("CUSTOMER")
- new Role("PROVIDER") );
- private final ObservableList<Person> data
- = FXCollections.observableArrayList(
- new Person("name1", functions.get(0),
- new Person("name2", functions.get(1),
- new Person("name3", functions.get(2),
- new Person("name4", functions.get(3)));
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д