Javafx没有显示可见的进度指示器并禁用HBox

时间:2016-08-30 07:45:27

标签: java javafx javafx-8 visible disabled-control

我有一个让我疯狂的问题,我有一个控制我的应用程序中的电子储物柜的功能,我写了这个功能,向用户显示打开的储物柜和那些靠近的储物柜,同时他启动这个功能(通过按钮)我会向用户显示进度指示器并禁用窗格,其中我有一些代表储物柜的按钮(这些按钮中的每一个在点击后打开右锁柜),但是当我点击按钮时检查储物柜它不会禁用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板与储物柜联系,但我认为这个问题不存在,因为储物柜的控制功能完美无缺,并且给我带来了正确的开放式储物柜的确切数量

0 个答案:

没有答案