我有一个让我疯狂的问题,我有一个控制我的应用程序中的电子储物柜的功能,我写了这个功能,向用户显示打开的储物柜和那些靠近的储物柜,同时他启动这个功能(通过按钮)我会向用户显示进度指示器并禁用窗格,其中我有一些代表储物柜的按钮(这些按钮中的每一个在点击后打开右锁柜),但是当我点击按钮时检查储物柜它不会禁用HBox并且不设置可见的ProgressIndicator,但它执行控制储物柜的部分代码是代码的一部分:
btnCheckSlides.setOnAction((ActionEvent event) ->{
piControlOnLockers.setVisible(true);//this is the progress indicator
hBoxButtonSlides.setDisable(true);//and this is the hbox
String slideOpen= returnOpenedSlides(drawer,Integer.parseInt(btnCheckSlides.getAccessibleText()));//function which gives me back the number of open lockers
if(slideOpen.isEmpty()==false){
String slidesOpen[] = slideOpen.split(";");
for(int k = 0; k< slidesOpen.length; k++){
System.out.print(Integer.parseInt(slidesOpen[k]));
for(int j = 0; j < mainList.get(Integer.parseInt(btnCheckSlides.getAccessibleText())).getChildren().size(); j++){
if(Integer.parseInt(slidesOpen[k]) == Integer.parseInt(mainList.get(Integer.parseInt(btnCheckSlides.getAccessibleText())).getChildren().get(j).getAccessibleHelp())-1){
mainList.get(Integer.parseInt(btnCheckSlides.getAccessibleText())).getChildren().get(j).getStyleClass().add("focus");
}
}
}
}
piControlOnLockers.setVisible(false);
hBoxButtonSlides.setDisable(false);
});
所以一旦禁用h框并且在控制储物柜的功能之后pi可见,它们就会启用并且不再可见
我尝试在这个初始和最终部分之间注释代码并且它有效,我无法理解为什么这样的代码部分会给我所有这些问题
btnCheckSlides.setOnAction((ActionEvent event) ->{
piControlOnLockers.setVisible(true);//this is the progress indicator
hBoxButtonSlides.setDisable(true);//and this is the hbox
try{
Thread.sleep(5000); //to see if the box is disabled for 5 secs and the pi is set to visible
}catch(InterruptedException ex){
System.out.println(ex.toString());
}
piControlOnLockers.setVisible(false);//"hide" the pi again
hBoxButtonSlides.setDisable(false);//set the box enable again
});
P.S。我通过TCP / IP板与储物柜联系,但我认为这个问题不存在,因为储物柜的控制功能完美无缺,并且给我带来了正确的开放式储物柜的确切数量