Ситуация такая. у меня есть 2 таблицы. В 1-ой хранятся номера договоров, во 2-ой дополнительная информация по выбранному договору из 1-ой таблицы (т.е. когда я выделяю строку из таблицы 1, в таблице 2 могут отобразиться 4 строки относящиеся по выбранному договору, если я выделю другую строку из той же 1-ой таблице, во 2-ой может отобразиться 6 строк) точнее я хочу так сделать, но у меня не получается.
Сейчас у меня есть класс MainData
там я храню все переменные и коллекцию для отображения информации (переменные отправляются в Label
с ними все отлично поэтому их в код не вставляю), есть сам класс контроллер, где все отображается. Суть мольбы о помощи заключается во второй таблице, в первой все хорошо, но если я хочу отравить данные во вторую таблицу, компилятор жалуется и говорит преобразуй данные в ObservableValue<String>
, вроде есть какая-то обвертка, что бы мою коллекцию преобразовать в ObservableValue<String>
но у меня ничего не получается, помогите с отображением инфы плиз.
Класс MainData
private final List<String> nameLink;
public MainData(String numberContract) {
this.nameLink = FXCollections.observableArrayList();
}
public List<String> getNameLink() {
return nameLink;
}
public List<String> setNameLink(String nameLink) {
this.nameLink.add(nameLink);
return getNameLink();
}
Класс контроллер
public class MainController {
@FXML
private TableView<MainData> contractTable;
@FXML
private TableColumn<MainData, String> numberContractColumn;
@FXML
private TableColumn<MainData, String> contractColumn;
@FXML
private TableView<MainData> linkTable;
@FXML
private void initialize() {
// Инициализация таблицы.
numberContractColumn.setCellValueFactory(cellData -> cellData.getValue().numberContractProperty());
contractColumn.setCellValueFactory(cellData -> cellData.getValue().getNameLink()); //Ошибка именно тут.
Вырезал всю лишнюю инфу как по мне, но если что-то не понятно, добавлю конечно
Если во второй таблице нужно отобразить содержимое, возвращаемое getNameLink(), то на первую таблицу вешаем обработчик выделения элемента:
contractTable.getSelectionModel().selectedItemProperty().addListener((ov, o, n) -> {
if (n != null) {
detailsTable.setItems(n.getNameLink());
}
});
где TableView<String> detailsTable
-- вторая таблица.
В MainData nameLink не приводить к List, а использовать ObservableList
private final ObservableList<String> nameLink = FXCollections.observableArrayList();
// ObservableList вместо просто List
public ObservableList<String> getNameLink() {
return nameLink;
}
Айфон мало держит заряд, разбираемся с проблемой вместе с AppLab
Необходимо, чтобы при клике на кнопку, окно загрузки файлов открывалось с определенным acceptВ моем примере, accept применяется уже после того,...
В таблицу HTML выводятся данные из БД PostgresИ рядом с каждым полем должна выводится кнопка "Удалить клиента"
Посмотрите где у меня ошибка в коде, который будет проверять введенное значение, и говорить, сдали вы тест или нет