Использование класса 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)));
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д