ListView SetCellFactory привязывает привязку, если только анонимный класс?JAVA

Программисты JAVA общаются здесь
Anonymous
ListView SetCellFactory привязывает привязку, если только анонимный класс?

Сообщение Anonymous »

Зачем мне необходимо анонимно подкласс экземпляр Javafx обратного вызова при передаче его в ListView :: setCellFactory для привязки с SelectedItemProperty (of listView :: getSelectionModel ) для работы в смысле на самом деле уведомляется при выборе. Пример вложенного контроллера Джеймса-D: https://github.com/james-d/nested-controller-example
И мне интересно, почему связывание с редактором все еще работает при замене Maincontroller.java личность. работает) < /p>

Код: Выделить всё

personList.setCellFactory(param -> new ListCell
(){});
Но если я удалю {} Textfields больше не обновляются при выборе этих «пустых» ячеек

Код: Выделить всё

personList.setCellFactory(param -> new ListCell
());
Я решил, что эта же проблема сохраняется при использовании пользовательского списка Codecellfactory (где каждый список ListCell TextProperty связан и отображается правильно), поэтому проблема не в самой реализации (своего рода), а скорее в том, как параметр обработки передается на Setcellactory, который, по -видимому, что -то, что является самолетом, который, по -видимому, что -то, что станет для самолинизации. SelectedItemProperty для работы, как и ожидалось (и кто знает, что еще может быть затронуто).
не работает :

Код: Выделить всё

personList.setCellFactory(new PersonListCellFactory());
работает :

Код: Выделить всё

personList.setCellFactory(new PersonListCellFactory(){});
Может ли кто -нибудь воспроизвести эту проблему?

Код: Выделить всё

package nestedcontrollerexample;

import javafx.beans.binding.Bindings;
import javafx.scene.control.ListCell;
import javafx.scene.control.ListView;
import javafx.util.Callback;

public class PersonListCellFactory implements Callback {
@Override
public ListCell call(ListView param) {
return new ListCell() {
@Override
public void updateItem(Person person, boolean empty) {
super.updateItem(person, empty);
textProperty().unbind();
if (person != null) {
textProperty().bind(Bindings.format("%s %s", person.firstNameProperty(), person.lastNameProperty()));
}
}
};
}
}
Так как это возможно?


Подробнее здесь: https://stackoverflow.com/questions/348 ... nner-class

Вернуться в «JAVA»