Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/spring-mvc/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
为什么JavaFX TableView滚动条没有正确更新?_Javafx_Javafx 8 - Fatal编程技术网

为什么JavaFX TableView滚动条没有正确更新?

为什么JavaFX TableView滚动条没有正确更新?,javafx,javafx-8,Javafx,Javafx 8,编辑:我已经为这个问题做了准备。结果是我无意中针对b118而不是b120运行了这个示例。这个bug在b118和b120之间的某个时候被修复了,我使用b120时一切正常 我使用的是JavaFX8(OpenJDK的build 120),但我在TableView滚动错误方面遇到了问题。以下是SSCCE: 导入javafx.application.application; 导入javafx.beans.binding.IntegerBinding; 导入javafx.beans.property.*;

编辑:我已经为这个问题做了准备。结果是我无意中针对b118而不是b120运行了这个示例。这个bug在b118和b120之间的某个时候被修复了,我使用b120时一切正常

我使用的是JavaFX8(OpenJDK的build 120),但我在TableView滚动错误方面遇到了问题。以下是SSCCE:

导入javafx.application.application;
导入javafx.beans.binding.IntegerBinding;
导入javafx.beans.property.*;
导入javafx.collections.FXCollections;
导入javafx.collections.ObservableList;
导入javafx.collections.transformation.FilteredList;
导入javafx.geometry.Insets;
导入javafx.scene.scene;
导入javafx.scene.control.Label;
导入javafx.scene.control.TableColumn;
导入javafx.scene.control.TableView;
导入javafx.scene.control.TextField;
导入javafx.scene.control.cell.PropertyValueFactory;
导入javafx.scene.layout.VBox;
导入javafx.stage.stage;
导入java.util.HashSet;
导入java.util.Random;
导入java.util.Set;
公共类TableViewScroll扩展了应用程序{
private final ObservableList personList=FXCollections.observableArrayList();
private final FilteredList filteredPersonList=新的FilteredList(personList);
private final StringProperty filterText=new SimpleStringProperty();
私有最终IntegerProperty计数=新的SimpleIntegerProperty();
公共静态void main(字符串[]args){
发射(args);
}
@凌驾
public void start(Stage primaryStage)引发异常{
Scene-Scene=createScene();
initPersonList();
bindCount();
addFilterListener();
setTitle(“表格视图滚动”);
初级阶段。场景(场景);
primaryStage.show();
}
私有场景createScene(){
VBox VBox=新的VBox();
vBox.setPadding(新插图(5));
vBox.setspace(5);
TableView resultsTable=新建TableView();
TableColumn indexColumn=新的TableColumn(“#”);
indexColumn.setCellValueFactory(参数->{
//假定列表项是唯一的
int index=resultsTable.getItems().indexOf(param.getValue());
返回新的ReadOnlyStringWrapper(Integer.toString(index+1));
});
TableColumn Name column=新的TableColumn(“名称”);
nameColumn.setCellValueFactory(新属性ValueFactory(“名称”);
resultsTable.setColumnResizePolicy(TableView.Constraded_RESIZE_策略);
resultsTable.getColumns().setAll(indexColumn,nameColumn);
resultsTable.setItems(filteredPersonList);
TextField filterTextField=new TextField();
filterTextField.textProperty().bindBidirectional(filterText);
Label countLabel=新标签();
countLabel.textProperty().bind(count.asString());
vBox.getChildren().setAll(filterTextField、resultsTable、countLabel);
返回新场景(vBox);
}
私有void initPersonList(){
String firstNames=“亚当、阿德里安、艾伦、亚历山大、安德鲁、安东尼,”+
奥斯汀、本杰明、布莱克、鲍里斯、布兰登、布赖恩、卡梅隆、+
卡尔、查尔斯、克里斯蒂安、克里斯托弗、科林、康纳、丹+
大卫、多米尼克、迪伦、爱德华、埃里克、埃文、弗兰克、加文、+
戈登、哈里、伊恩、艾萨克、杰克、雅各布、杰克、詹姆斯、杰森+
乔、约翰、乔纳森、约瑟夫、约书亚、朱利安、贾斯汀、基思+
“凯文、莱纳德、利亚姆、卢卡斯、卢克、马特、马克斯、迈克尔”+
内森,尼尔,尼古拉斯,奥利弗,欧文,保罗,彼得,菲尔+
皮尔斯、理查德、罗伯特、瑞安、山姆、肖恩、塞巴斯蒂安、西蒙、+
斯蒂芬、史蒂文、斯图尔特、托马斯、蒂姆、特雷弗、维克托+
“沃伦,威廉”;
字符串[]firstNameArray=firstNames.split(\\s*,\\s*”);
String lastNames=“亚伯拉罕、艾伦、阿尔索普、安德森、阿诺德、艾弗里,”+
贝利、贝克、鲍尔、贝尔、贝瑞、布莱克、布莱克、邦德、+
鲍尔、布朗、巴克兰、伯吉斯、巴特勒、卡梅隆、坎贝尔、+
卡尔、查普曼、丘吉尔、克拉克、克拉克森、科尔曼、+
康沃尔、戴维森、戴维斯、狄更斯、多德、邓肯、戴尔、+
埃德蒙兹、埃里森、弗格森、费舍尔、福赛斯、弗雷泽、+
吉布森、吉尔、格洛弗、格雷厄姆、格兰特、格雷、格林、+
汉密尔顿、哈达克、哈里斯、哈特、海明斯、亨德森、+
希尔、霍奇斯、霍华德、哈德逊、休斯、亨特、因斯、+
杰克逊、詹姆斯、约翰斯顿、琼斯、凯利、克尔、金、诺克斯、+
兰伯特、兰登、劳伦斯、李、刘易斯、莱曼、麦克唐纳、+
麦凯、麦肯齐、麦克劳德、曼宁、马歇尔、马丁、+
马蒂斯、梅、麦克唐纳、麦克莱恩、麦克格拉斯、梅特卡夫、米勒、+
米尔斯、米切尔、摩根、莫里森、默里、纳什、纽曼、+
诺兰、诺斯、奥格登、奥利弗、佩奇、帕尔、帕森斯、+
帕特森、佩恩、皮克、彼得斯、派珀、普尔、鲍威尔、+
“普尔曼、奎因、兰普林、兰德尔、里斯、里德、罗伯茨”+
罗伯逊、罗斯、拉塞尔、卢瑟福、桑德森、斯科特、+
夏普,肖特,辛普森,斯金纳,斯莱特,史密斯,斯普林格+
斯图尔特、萨瑟兰、泰勒、特里、汤姆森、塔克、+
特纳、安德伍德、万斯、沃恩、沃克、华莱士、沃尔什、+
“沃森、韦尔奇、怀特、威尔金斯、威尔逊、赖特、杨”;
字符串[]lastNameArray=lastNames.split(“\\s*,\\s*”);
int firstNameLength=firstNameArray.length;
int lastNameLength=lastNameArray.length;
Random firstRandomIndex=新随机();
Random lastRandomIndex=新随机();
//使用集合以确保所有名称都是唯一的
Set name=新的HashSet();
对于(int i=0;i<2000;i++){
字符串first=firstN