JavaFX - ошибка в рендеринге ячейки после скрытия столбцов

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

                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());                     
            }
        }                                
    };                       
});  

Несколько фотографий, чтобы объяснить, что на самом деле не так. Перед сокрытием После скрытия

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

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


person Ruslan Gabbazov    schedule 22.06.2016    source источник


Ответы (1)


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

person Ruslan Gabbazov    schedule 05.07.2016