JavaFX - 隐藏列后单元格渲染中的错误

Posted

技术标签:

【中文标题】JavaFX - 隐藏列后单元格渲染中的错误【英文标题】:JavaFX - bug in cell render after hiding columns 【发布时间】:2016-06-22 07:57:27 【问题描述】:

首先对不起我的英语:) 我有一个奇怪的错误...我想在按下按钮后隐藏 JavaFX TableView 中的一些列。代码尽量简单:

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

(我也用 remove 进行了测试,结果相同)。 问题是,在“相邻单元”中,在此操作之后,我从某处获得了“分隔符”。 我使用 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”,一切都会按预期工作 - 所有列都在那里,任何地方都没有任何“分隔符”。

非常感谢您的建议!

【问题讨论】:

【参考方案1】:

所以,最终 tableview 刷新在 JavaFX 8u60 中得到解决。现在“原生”table.refresh() 就可以了。

【讨论】:

以上是关于JavaFX - 隐藏列后单元格渲染中的错误的主要内容,如果未能解决你的问题,请参考以下文章

删除或隐藏单元格中的值

搜索特定列后,如何使用 MS Word VBA 代码对具有特定文本的单元格进行着色?

UITableView 中的自定义单元格使图像在滚动时重叠

JavaFX:如何使表格单元格取决于另一个表格单元格的值

JavaFX 表格单元格格式

VBA:如何找到同一行中的下一个单元格(不包括隐藏单元格)