表大小变为零时停止javafx时间线 Timeline addRandomPeopleFrequency=新的时间线(新的关键帧(Duration.millis(20),新的EventHandler(){ @凌驾 公共无效句柄(ActionEvent事件){ if(table.getItems().size()==0) { 试一试{ 停止(); }捕获(异常e1){ //TODO自动生成的捕捉块 e1.printStackTrace(); } } int index=RNG.nextInt(table.getItems().size()); 计数++; table.getItems().remove(索引); e=System.currentTimeMillis()-s; } })); addRandomPeopleFrequency.setCycleCount(Animation.unfinite); 经常添加RandomPeopleFrequency.play();

表大小变为零时停止javafx时间线 Timeline addRandomPeopleFrequency=新的时间线(新的关键帧(Duration.millis(20),新的EventHandler(){ @凌驾 公共无效句柄(ActionEvent事件){ if(table.getItems().size()==0) { 试一试{ 停止(); }捕获(异常e1){ //TODO自动生成的捕捉块 e1.printStackTrace(); } } int index=RNG.nextInt(table.getItems().size()); 计数++; table.getItems().remove(索引); e=System.currentTimeMillis()-s; } })); addRandomPeopleFrequency.setCycleCount(Animation.unfinite); 经常添加RandomPeopleFrequency.play();,java,javafx-2,tableview,timeline,Java,Javafx 2,Tableview,Timeline,我有这个代码,当我的表的大小变为0时,我想停止时间线。 此代码未执行任何有关您要停止的操作的建议 Timeline addRandomPeopleFrequently = new Timeline(new KeyFrame(Duration.millis(20), new EventHandler<ActionEvent>() { @Override public void handle(ActionEvent event) {

我有这个代码,当我的表的大小变为0时,我想停止时间线。 此代码未执行任何有关您要停止的操作的建议

Timeline addRandomPeopleFrequently = new Timeline(new KeyFrame(Duration.millis(20), new EventHandler<ActionEvent>() {  
            @Override  
            public void handle(ActionEvent event) {
                if(table.getItems().size()==0)
                {

                    try {
                        stop();
                    } catch (Exception e1) {
                        // TODO Auto-generated catch block
                        e1.printStackTrace();
                    }
                }
                int index = RNG.nextInt(table.getItems().size());
                count++;
                table.getItems().remove(index);
                e=System.currentTimeMillis() -s;
            }  
          }));  

          addRandomPeopleFrequently.setCycleCount(Animation.INDEFINITE);  
          addRandomPeopleFrequently.play();
它什么也不做,而是做

javafx.​application.​Application.stop();

如果您尝试这样做,您将得到编译器错误
addRandomPeopleFrequency可能尚未初始化
@ajeh我没有给出详细信息,但eventhandler应该单独定义和启动,在AddRandomPeopleFrequency初始化之后。类似的时间线仅在
AddRandomPeopleFrequency
是构造函数中创建的类字段时适用,因为匿名类实例只能使用最终的局部变量。
addRandomPeopleFrequently.stop();