我在 Java FX 2.0 应用程序的用户界面上显示计时器。问题是,当我在屏幕上启动一个计时器(在标签上显示它)时,它开始增加 HEAP 大小并且增加了 GC 中的幸存者数量,我在 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();
}