第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號(hào)安全,請(qǐng)及時(shí)綁定郵箱和手機(jī)立即綁定
已解決430363個(gè)問(wèn)題,去搜搜看,總會(huì)有你想問(wèn)的

JavaFx:樹(shù)表查看奇怪的空點(diǎn)器異常

JavaFx:樹(shù)表查看奇怪的空點(diǎn)器異常

我注意到一個(gè)奇怪的NPE在TreeTableView如果在表中雙擊不存在行,則會(huì)發(fā)生這種情況。附上一張截圖來(lái)顯示我的意思。我純粹來(lái)自JavaFx,它與我的代碼無(wú)關(guān)。我也做了一個(gè)研究,沒(méi)有發(fā)現(xiàn)任何與此相關(guān)的內(nèi)容。下面是一個(gè)簡(jiǎn)單的代碼來(lái)重現(xiàn)它:控制器:public class Controller implements Initializable {    @FXML    private TreeTableColumn<Model, String> column;    @FXML    private TreeTableView<Model> treeTable;    @Override    public void initialize(URL location, ResourceBundle resources) {        TreeItem<Model> root = new TreeItem<>(new Model("Root"));        treeTable.setRoot(root);        column.setCellValueFactory(value -> value.getValue().getValue().textProperty());    }    private class Model {        private StringProperty text;        Model(String text) {            this.text = new SimpleStringProperty(text);        }        public StringProperty textProperty() {            return text;        }        public String getText() {            return text.get();        }        @Override        public String toString() {            return getText();        }    }}.fxml:<?xml version="1.0" encoding="UTF-8"?><?import javafx.scene.control.TreeTableColumn?><?import javafx.scene.control.TreeTableView?><?import javafx.scene.layout.AnchorPane?><AnchorPane xmlns="http://javafx.com/javafx"            xmlns:fx="http://javafx.com/fxml"            fx:controller="stackoverflow.treeview.Controller">    <TreeTableView fx:id="treeTable">        <columns>            <TreeTableColumn fx:id="column" text="Test"/>        </columns>    </TreeTableView></AnchorPane>如果在紅色區(qū)域中雙擊,則會(huì)引發(fā) NPE。作為解決方案,我會(huì)接受任何真正有效的解決方法或任何解釋/ javafx錯(cuò)誤報(bào)告,表明他們正在研究它,或者在以下版本中有一個(gè)修復(fù)程序。
查看完整描述

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。


查看完整回答
反對(duì) 回復(fù) 2022-09-22
  • 1 回答
  • 0 關(guān)注
  • 136 瀏覽
慕課專(zhuān)欄
更多

添加回答

舉報(bào)

0/150
提交
取消
微信客服

購(gòu)課補(bǔ)貼
聯(lián)系客服咨詢(xún)優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動(dòng)學(xué)習(xí)伙伴

公眾號(hào)

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號(hào)