2016-03-25 6 views
1

Например, у меня есть несколько классов для различных типов клеток, в зависимости от типа значения в ячейке (Boolean, дата и т.д.)TableView setCellFactory в зависимости от типа значения

что-то вроде что:

public class MyBooleanCell extends TableCell<MyData, Boolean> {...} 
public class MyDateCell extends TableCell<MyData, LocalDate> {...} 

Как я могу сделать что-то подобное (пример псевдокода)?

colValue.setCellFactory(factory -> { 
    if (cellValueType != null) { 
     if (cellValueType instanceof Boolean) { 
     return MyBooleanCell; 
     } else if (cellValueType instanceof LocalDate) { 
     return MyDateCell; 
     } else { 
     //... 
     } 
    } 
}); 
+0

Почему вы не используете двунаправленные связывается? – JohnRW

+0

И как должен «Node', который вы назначаете «графике», подключаться к элементам, если нет обработчиков/слушателей событий, добавленных вообще? ??????? Также как вы создали свой 'FilterRow.filterValueProperty()', чтобы оправдать этот код cellValueFactory? – fabian

+0

@fabian добавить часть класса FilterRow для публикации. Я должен связать свой «узел» с свойством в 'setCellFactory'? Как я могу получить свойство в этой части кода для создания привязки? –

ответ

-2

Попробуйте обновить TableView, установив значение видимости в значение false и значение true.

Tableview -> ложные Tableview -> истинные

+0

нет, независимо от проблемы, переключение видимости не является решением ... – kleopatra