Использование индекса ObservableList в столбце TableView JavaFX - PullRequest
0 голосов
/ 30 ноября 2018

В настоящее время я пытаюсь показать индекс моего ObservableList для столбца TableView.Единственные решения, которые я нашел, - это создание поверхностных указателей.Но мне нужен фактический индекс, чтобы я мог соответственно отсортировать TableView.

 cargoTable.setItems(um.getCargoList());
 cargoTypeColumn.setCellValueFactory(new PropertyValueFactory<Cargo, CargoType>("cargoType"));
 ownerColumn.setCellValueFactory(new PropertyValueFactory<Cargo, Customer>("owner"));
 ownerColumn.setComparator(new Comparator<Customer>() {
     @Override
     public int compare(Customer o1, Customer o2) {
         return o1.getName().compareToIgnoreCase(o2.getName());
     }
     });
 sizeColumn.setCellValueFactory(new PropertyValueFactory<Cargo, Integer>("size"));
 propertiesColumn.setCellValueFactory(new PropertyValueFactory<Cargo, String>("properties"));
 hazardsColumn.setCellValueFactory(new PropertyValueFactory<Cargo, Hazard>("hazards"));
 depositDateColumn.setCellValueFactory(new PropertyValueFactory<Cargo, Date>("date"));

Мой TableView наблюдает за списком с грузами, и каждый столбец в TableView представляет свойство Cargo внутри списка.Все работает отлично, но я просто не могу найти способ использовать столбец, показывающий индекс этого списка.

Любая помощь будет признательна!Заранее спасибо!

1 Ответ

0 голосов
/ 30 ноября 2018

Это не проверено.

Вы можете использовать пользовательский cellValueFactory для своего столбца и использовать в нем другую логику.Нечто похожее на:

indexCol.setCellValueFactory(data -> {
    Cargo item = data.getValue();
    int index = table.getItems().indexOf(item);
    return new SimpleStringProperty(Integer.toString(index));
});

Это в основном говорит для этого столбца, дайте мне элемент, на который должна смотреть эта ячейка, и найдите ее индекс на основе списка, установленного для таблицы, а затем верните его.

Это должно сработать, и, конечно, вам нужно будет откорректировать класс и правильность списков и т. Д., Но идея остается в силе.

Надеюсь, это сработает для вас.

...