001         package com.croftsoft.core.gui;
002    
003         import java.awt.*;
004    
005         import com.croftsoft.core.lang.NullArgumentException;
006    
007         /*********************************************************************
008         * Library of static methods for manipulating a GraphicDevice.
009         *
010         * @version
011         *   2003-07-26
012         * @since
013         *   2003-07-25
014         * @author
015         *   <a href="https://www.croftsoft.com/">David Wallace Croft</a>
016         *********************************************************************/
017    
018         public final class  GraphicsDeviceLib
019         //////////////////////////////////////////////////////////////////////
020         //////////////////////////////////////////////////////////////////////
021         {
022    
023         public static boolean  changeDisplayMode (
024           GraphicsDevice   graphicsDevice,
025           DisplayMode [ ]  desiredDisplayModes )
026         //////////////////////////////////////////////////////////////////////
027         {
028           NullArgumentException.check ( graphicsDevice );
029    
030           NullArgumentException.check ( desiredDisplayModes );
031    
032           if ( !graphicsDevice.isDisplayChangeSupported ( ) )
033           {
034             return false;
035           }
036    
037           DisplayMode  currentDisplayMode = graphicsDevice.getDisplayMode ( );
038    
039           DisplayMode [ ]  supportedDisplayModes
040             = graphicsDevice.getDisplayModes ( );
041    
042           for ( int  i = 0; i < desiredDisplayModes.length; i++ )
043           {
044             DisplayMode  desiredDisplayMode = desiredDisplayModes [ i ];
045    
046             if ( DisplayModeLib.matches (
047               currentDisplayMode, desiredDisplayMode ) )
048             {
049               return false;
050             }
051    
052             for ( int  j = 0; j < supportedDisplayModes.length; j++ )
053             {
054               DisplayMode  supportedDisplayMode = supportedDisplayModes [ j ];
055    
056               if ( DisplayModeLib.matches (
057                 supportedDisplayMode, desiredDisplayMode ) )
058               {
059                 graphicsDevice.setDisplayMode ( supportedDisplayMode );
060    
061                 return true;
062               }
063             }
064           }
065    
066           return false;
067         }
068    
069         //////////////////////////////////////////////////////////////////////
070         //////////////////////////////////////////////////////////////////////
071    
072         private  GraphicsDeviceLib ( ) { }
073    
074         //////////////////////////////////////////////////////////////////////
075         //////////////////////////////////////////////////////////////////////
076         }