表大小变为零时停止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();
我有这个代码,当我的表的大小变为0时,我想停止时间线。 此代码未执行任何有关您要停止的操作的建议表大小变为零时停止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) {
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();