2016-06-22 1 views
0

Прежде всего, извините за мой английский :) У меня странная ошибка ... Я хотел бы скрыть некоторые столбцы в JavaFX TableView после нажатия кнопки. Код максимально прост:JavaFX - ошибка в рендеринге ячеек после скрытия столбцов

   column8.visibleProperty().set(false); 
       column9.visibleProperty().set(false); 

(Я также тестировал с удалением с тем же результатом). Проблема в том, что в «соседней ячейке» у меня есть «разделитель» откуда-то после этого действия. Я использую Cellfactories - это мой код. Для одного из скрытой ячейки это

column8.setCellFactory(column -> { 
    return new TableCell<Anfrage, Mandant>() { 
     @Override 
     protected void updateItem(Mandant item, boolean empty) {      
      super.updateItem(item, empty); 
      if (item == null || empty) { 
       setText(null); 
      } else { 
       setText(item.getNameMandant());      
      } 
     }         
    };      
}); 

А для ячейки, где у меня есть «Сепаратор» после того, как бега:

//Store 
column10.setCellFactory(column -> { 
    return new TableCell<Anfrage, Terminals>() { 
     @Override 
     protected void updateItem(Terminals item, boolean empty) {      
      super.updateItem(item, empty); 
      if (item == null || empty) { 
       setText(null); 
      } else { 
       setText(item.getStore());      
      } 
     }         
    };      
}); 

Некоторые фото, чтобы объяснить, что на самом деле не так. Before hiding After hiding

Если я устанавливаю видеть «истинные» снова Everythings работает, как ожидалось - все столбцы находятся там без каких-либо «разделителей» в любом месте.

Большое спасибо за любой совет!

ответ

1

Итак, наконец, обновление табличного обзора разрешено в JavaFX 8u60. Теперь «родной» table.refresh() сделать трюк.