簡體   English   中英

如何在JavaFX中從TableView獲取TableHeaderRow?

[英]How to get TableHeaderRow from TableView nowadays in JavaFX?

我看到了如何使用代碼在許多地方獲取表頭的示例

TableHeaderRow header = (TableHeaderRow) tableView.lookup("TableHeaderRow");

像這里: 如何防止TableView在javaFX 8中執行TableColumn重新排序?

但是這段代碼對我來說是null

那么如何到達TableHeaderRow呢?

TableHeaderRowSkin創建,並且在應用css之前不會創建默認的Skin

你可以稱之為applyCss加入后TableView一個Scene ,並訪問TableHeaderRow此調用之后。

或者,在設置Skin ,偵聽Skin更改並執行該代碼。

此外,我建議使用TableViewSkinBase.getTableHeaderRow來檢索標題行而不是使用lookup (無論如何你都使用com.sun包)。

tableView.skinProperty().addListener((a, b, newSkin) -> {
    TableHeaderRow headerRow = ((TableViewSkinBase) newSkin).getTableHeaderRow();
    ...
});

查找( “TableHeaderRow”); 工作,但它需要在表呈現后調用,否則將返回null

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM