1 回答

TA貢獻(xiàn)1842條經(jīng)驗(yàn) 獲得超22個(gè)贊
當(dāng)您單擊沒(méi)有列的空白區(qū)域時(shí),最終會(huì)單擊 .顯然,控件的行為類(lèi)中存在一個(gè)錯(cuò)誤,這意味著它無(wú)法處理包含項(xiàng)的行。如果您單擊列的空白區(qū)域,則不會(huì)看到此錯(cuò)誤,因?yàn)樵摿袉螕袅?,其行為類(lèi)似乎沒(méi)有遇到相同的問(wèn)題。不確定確切的區(qū)別在哪里,但我只是快速瀏覽了一下源代碼。TreeTableRownullTreeTableCell
如前所述,阻止引發(fā)異常的 @kleopatra一種方法是向 添加一個(gè)事件篩選器,該篩選器消耗空行的雙擊。TreeTableRow
var table = new TreeTableView<String>();
table.setRowFactory(ttv -> {
var row = new TreeTableRow<String>();
row.addEventFilter(MouseEvent.MOUSE_PRESSED, event -> {
if (row.getItem() == null && event.getClickCount() % 2 == 0) {
event.consume();
}
});
return row;
});
注意:您需要點(diǎn)擊次數(shù) % 2 == 0,因?yàn)楫?dāng)點(diǎn)擊次數(shù)為偶數(shù)時(shí),行為類(lèi)將嘗試訪(fǎng)問(wèn) TreeItem。
添加回答
舉報(bào)