001 package com.croftsoft.apps.mars.controller; 002 003 import java.awt.*; 004 import java.awt.event.*; 005 006 import com.croftsoft.core.animation.animator.FrameRateAnimator; 007 import com.croftsoft.core.lang.NullArgumentException; 008 009 /********************************************************************* 010 * Toggle the frame rate display. 011 * 012 * @version 013 * 2003-04-11 014 * @since 015 * 2003-04-11 016 * @author 017 * <a href="https://www.croftsoft.com/">David Wallace Croft</a> 018 *********************************************************************/ 019 020 public final class FrameRateController 021 extends KeyAdapter 022 ////////////////////////////////////////////////////////////////////// 023 ////////////////////////////////////////////////////////////////////// 024 { 025 026 private final FrameRateAnimator frameRateAnimator; 027 028 ////////////////////////////////////////////////////////////////////// 029 ////////////////////////////////////////////////////////////////////// 030 031 public FrameRateController ( 032 FrameRateAnimator frameRateAnimator, 033 Component component ) 034 ////////////////////////////////////////////////////////////////////// 035 { 036 NullArgumentException.check ( 037 this.frameRateAnimator = frameRateAnimator ); 038 039 component.addKeyListener ( this ); 040 041 component.requestFocus ( ); 042 } 043 044 ////////////////////////////////////////////////////////////////////// 045 // interface KeyListener methods 046 ////////////////////////////////////////////////////////////////////// 047 048 public void keyPressed ( KeyEvent keyEvent ) 049 ////////////////////////////////////////////////////////////////////// 050 { 051 if ( keyEvent.getKeyCode ( ) == KeyEvent.VK_F ) 052 { 053 frameRateAnimator.toggle ( ); 054 } 055 } 056 057 ////////////////////////////////////////////////////////////////////// 058 ////////////////////////////////////////////////////////////////////// 059 }