Farklı veri türleri ile yaklaşık 18 sütun içeren bir tablo görünümüm var. Tüm bu veri türlerini işleyebilecek özelleştirilmiş bir tablo hücresi tanımlayabilir miyim? Tüm bu sütunlar için hücre fabrikasını bu özelleştirilmiş tablo hücresine ayarlayabilir.Tablo görünümünde farklı sütun türleri için uygun olan özelleştirilmiş tablo hücresini uygulayabilirim Javafx
public class SimpleTextCell<S,T> extends TableCell<S ,T> {
private final Function<T,String> textExtractor ;
public SimpleTextCell(Function<T, String> textExtractor) {
this.textExtractor = textExtractor ;
}
public SimpleTextCell() {
this(T::toString);
}
@Override
protected void updateItem(T item, boolean empty) {
super.updateItem(item, empty);
setText(empty ? null : textExtractor.apply(item));
}
}
(ve ihtiyacınız gibi updateItem(...)
yönteme daha fazla işlevsellik ekleyebilirsiniz):
Thanx @James_D ama nasıl türünü algılayabilir çalışma zamanında ikinci parametre, tablo görünümünde tüm sütunlar için bir for döngüsü yazmak ve bunları aynı TableCell, TableColumn- someStringColumn = new TableColumn <>(); someStringColumn.setCellFactory (tc -> yeni SimpleTextCell <Öğe, Dize>()); UpdateItem yöntemini –
ManKeer
içinde String DataType kullanıyorum nasıl algılayabilir Yazım sınaması nedeniyle çalışma zamanında tablo sütununun parametrized türünü dinamik olarak denetleyemezsiniz. Burada yapmak istediğiniz şey tam olarak belli değil: Farklı tablo sütun türleri için farklı davranışlar istiyorsanız, o zaman gerçekten aynı tablo hücresi uygulamasını kullanmıyorsunuz. (Tabii ki, 'updateItem()' metodunun içinde 'instanceof' testlerini yapabilirdiniz, fakat oldukça çirkin olurdu.' Sütunu oluştururken muhtemelen tablo sütun tipini bildiğiniz için, neden hücre fabrikasını kaydettirmiyorsunuz? sonra? –
Anladım, bu açıklama için teşekkürler. – ManKeer