2

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

0 に答える 0