Javafx tableview滚动太慢

Javafx tableview滚动太慢,java,javafx,scroll,tableview,fxml,Java,Javafx,Scroll,Tableview,Fxml,我用Javafx制作了一个显示100000行的Tableview,但问题是滚动太慢了,如果有人对此有任何想法,请告诉我 //如果我使用readOnlyObjectWrapper(param.getValue()),那么效果很好,但是 我让它像readOnlyObjectWrapper(param.getValue().getId_student)一样,它不工作 id_student.setCellValueFactory(new PropertyValueFactory<Student,

我用Javafx制作了一个显示100000行的Tableview,但问题是滚动太慢了,如果有人对此有任何想法,请告诉我

//如果我使用readOnlyObjectWrapper(param.getValue()),那么效果很好,但是 我让它像readOnlyObjectWrapper(param.getValue().getId_student)一样,它不工作

id_student.setCellValueFactory(new PropertyValueFactory<Student,String>("id_student") {
        @Override
        public ObservableValue<String> call(TableColumn.CellDataFeatures<Student, String> param) {
            return new ReadOnlyObjectWrapper(param.getValue().getId_student());
        }

    });
    fname.setCellValueFactory(new PropertyValueFactory<Student, String>("fname") {
        @Override
        public ObservableValue<String> call(TableColumn.CellDataFeatures<Student, String> param) {
            return new ReadOnlyObjectWrapper(param.getValue().getFname());
        }

    });
    lname.setCellValueFactory(new PropertyValueFactory<Student, String>("lname") {
        @Override
        public ObservableValue<String> call(TableColumn.CellDataFeatures<Student, String> param) {
            return new ReadOnlyObjectWrapper(param.getValue().getLname());
        }

    });
    nameFather.setCellValueFactory(new PropertyValueFactory<Student, String>("nameFather") {
        @Override
        public ObservableValue<String> call(TableColumn.CellDataFeatures<Student, String> param) {
            return new ReadOnlyObjectWrapper(param.getValue().getNameFather());
        }

    });
    birthDay.setCellValueFactory(new PropertyValueFactory<Student, String>("birthDay") {
        @Override
        public ObservableValue<String> call(TableColumn.CellDataFeatures<Student, String> param) {
            return new ReadOnlyObjectWrapper(param.getValue().getBirthDay());
        }

    });
    birthPlace.setCellValueFactory(new PropertyValueFactory<Student, String>("birthPlace") {
        @Override
        public ObservableValue<String> call(TableColumn.CellDataFeatures<Student, String> param) {
            return new ReadOnlyObjectWrapper(param.getValue().getBirthPlace());
        }

    });
    email.setCellValueFactory(new PropertyValueFactory<Student, String>("email") {
        @Override
        public ObservableValue<String> call(TableColumn.CellDataFeatures<Student, String> param) {
            return new ReadOnlyObjectWrapper(param.getValue().getEmail());
        }

    });
    tel.setCellValueFactory(new PropertyValueFactory<Student, String>("tel") {
        @Override
        public ObservableValue<String> call(TableColumn.CellDataFeatures<Student, String> param) {
            return new ReadOnlyObjectWrapper(param.getValue().getTel());
        }

    });
id\u student.setCellValueFactory(新属性值工厂(“id\u student”){
@凌驾
公共observeValue调用(TableColumn.CellDataFeatures参数){
返回新的ReadOnlyObjectWrapper(param.getValue().getId_student());
}
});
fname.setCellValueFactory(新属性ValueFactory(“fname”){
@凌驾
公共observeValue调用(TableColumn.CellDataFeatures参数){
返回新的ReadOnlyObjectWrapper(param.getValue().getFname());
}
});
lname.setCellValueFactory(新属性ValueFactory(“lname”){
@凌驾
公共observeValue调用(TableColumn.CellDataFeatures参数){
返回新的ReadOnlyObjectWrapper(param.getValue().getLname());
}
});
nameFather.setCellValueFactory(新属性ValueFactory(“nameFather”){
@凌驾
公共observeValue调用(TableColumn.CellDataFeatures参数){
返回新的ReadOnlyObjectWrapper(param.getValue().getNameFather());
}
});
生日。setCellValueFactory(新属性ValueFactory(“生日”){
@凌驾
公共observeValue调用(TableColumn.CellDataFeatures参数){
返回新的ReadOnlyObjectWrapper(param.getValue().getBirthy());
}
});
出生地。setCellValueFactory(新财产价值工厂(“出生地”){
@凌驾
公共observeValue调用(TableColumn.CellDataFeatures参数){
返回新的ReadOnlyObjectWrapper(param.getValue().getBirthPlace());
}
});
email.setCellValueFactory(新属性ValueFactory(“电子邮件”){
@凌驾
公共observeValue调用(TableColumn.CellDataFeatures参数){
返回新的ReadOnlyObjectWrapper(param.getValue().getEmail());
}
});
电话:setCellValueFactory(新物业价值工厂(“电话”){
@凌驾
公共observeValue调用(TableColumn.CellDataFeatures参数){
返回新的ReadOnlyObjectWrapper(param.getValue().getTel());
}
});

你能把
学生
课程的相关部分贴出来吗?此外:为什么要扩展
属性值工厂
,而不是简单地实现
回调
?同样,使用
ReadOnlyObjectWrapper
而不是
SimpleObjectProperty
SimpleStringProperty
也没有意义。。。它和它的超类一样可写。
SimpleObjectProperty
/
SimpleStringProperty
。创建并发布一个实际的。如果没有完整的示例,几乎不可能回答有关性能的问题。感谢您的回答,a将代码放到了bitbucket上:您是否碰巧使用Linux?表中的部分或大部分数据是否使用复杂或从右向左的语言(例如阿拉伯语、印地语、波斯语、希伯来语等)?