Как обновить данные JavaFx?

569
16 марта 2017, 20:25

В TableView использую ObservableList<Product> productList. Чтобы изменить необходимые данные- использую объект из коллекции, но после сохранения ничего не изменяется до тех пор, пока не будет добавлен и удалён элемент. Как с этим бороться?

Объект получаю таким образом:

  table.getSelectionModel().selectedItemProperty().addListener((obs, oldSelection, newSelection) -> {
    if (newSelection != null) {
        selectedProd=(Product)table.getSelectionModel().getSelectedItem();
        //метод(),в котором отпрвляю объект и редактирую его


    }
});
Answer 1

Если использовать данные типа Property проблема обновления должна решиться для примера:

class Product{
   StringProperty testName ;
   public Product(String testName ){
       this.testName = new SimpleStringProperty(testName);
   }
   public StringProperty getTestName() {
       return testName;
   }
   public void setTestName(StringProperty testName) {
      this.testName = testName;
  }
}

И уже в контроллере

nameColumn.setCellValueFactory(cellData -> cellData.getValue().getTestName());

Если я все правильно помню при редактировании testName автоматически будет обновляться и таблица. И тогда можно обойтись и без table.refresh();

READ ALSO
Нет доступа к методу из JavaScript: ScriptException: TypeError: note.getTitle is not a function

Нет доступа к методу из JavaScript: ScriptException: TypeError: note.getTitle is not a function

Нашёл пример для работы с скриптами в Java здесьСоздал свой класс Note, создал экземпляр, положил его в engine, запускаю его метод getTitle и получаю...

282
Тормозит css-анимация

Тормозит css-анимация

Суть вопроса в следующемНа сайте есть sidebar (выезжающее справа меню), анимация которого построена на css-transitions

539
При обновлении сайта выдает `alert` [требует правки]

При обновлении сайта выдает `alert` [требует правки]

При обновлении или загрузке сайта, выдает alert

247