我在Java FX 2.0应用程序中显示用户界面上的计时器。问题是,当我在屏幕上启动一个计时器(在标签上显示它)时,它开始增加HEAP大小,并且在GC中没有增加Survivors,我在NetBeans探查器中检查了它的所有行为。但是,当我停止(即评论)定时器代码时,每件事情都完美无缺。我正在共享我的计时器代码,如果任何人可以建议内存泄漏或任何其他计时器显示程序,以免我增加堆大小。这是我的ShowTime代码。
public void startTimer(){
timeline = new Timeline();
timeline.setCycleCount(Timeline.INDEFINITE);
timeline.getKeyFrames().add(
new KeyFrame(Duration.seconds(1),
new EventHandler() {
// KeyFrame event handler
@Override
public void handle(Event event) {
// System.out.println("Entring time event");
if (timeSeconds % 60 == 0) {
mm++;
}
pagingTimeLbl.setText(String.format("%02d", mm) + " : " + String.format("%02d", timeSeconds % 60));
if(paging.getPriority()){
pagingPanelGrid.setStyle(timeSeconds%2==0?"-fx-border: 2px solid; -fx-border-color: red;":"-fx-border: 2px solid; -fx-border-color: black;");
}
if (timeSeconds <= 0) {
timeline.stop();
}
timeSeconds++;
}
}));
timeline.playFromStart();
}