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();
}