GTGE API

com.golden.gamedev.funbox
Class GameSettings

java.lang.Object
  extended by java.awt.Component
      extended by java.awt.Container
          extended by java.awt.Window
              extended by java.awt.Dialog
                  extended by javax.swing.JDialog
                      extended by com.golden.gamedev.funbox.GameSettings
All Implemented Interfaces:
ActionListener, ImageObserver, MenuContainer, Serializable, Runnable, EventListener, Accessible, RootPaneContainer, WindowConstants

public abstract class GameSettings
extends JDialog
implements ActionListener, Runnable

GameSettings is a dialog UI to show the user the basic game options for the player to choose of.

The options includes :
Option to play between fullscreen or windowed mode, option to play using bufferstrategy or not, and option turn on or turn off the sound.

To give the user more options or remove some options, subclass this class and override the initSettings() method.

Example of how-to-use GameSettings class :

 GameSettings settings = new GameSettings() {
    public void start() {
       // here goes the usual game initialization
       GameLoader game = new GameLoader();

       game.setup(new RoboticsWarGame() {
          protected void initEngine() {
             super.initEngine();
             // set active sound base on user setting
             bsSound.setActive(sound.isSelected());
             bsMusic.setActive(sound.isSelected());
          }
       }, new Dimension(640,480), fullscreen.isSelected(), bufferstrategy.isSelected());

       game.start();
    }

    // example removing bufferstrategy option from the list
    // then adding new option to use OpenGL or not
    JCheckBox opengl;

    protected JPanel initSettings() {
       JPanel pane = super.initSettings();

       // remove bufferstrategy option
       pane.remove(bufferstrategy);

       // add opengl option
       opengl = new JCheckBox("OpenGL", true);
       pane.add(opengl, 0);
    }
 };
 

See Also:
initSettings(), Serialized Form

Nested Class Summary
 
Nested classes/interfaces inherited from class javax.swing.JDialog
JDialog.AccessibleJDialog
 
Nested classes/interfaces inherited from class java.awt.Dialog
Dialog.AccessibleAWTDialog
 
Nested classes/interfaces inherited from class java.awt.Window
Window.AccessibleAWTWindow
 
Nested classes/interfaces inherited from class java.awt.Container
Container.AccessibleAWTContainer
 
Nested classes/interfaces inherited from class java.awt.Component
Component.AccessibleAWTComponent, Component.BltBufferStrategy, Component.FlipBufferStrategy
 
Field Summary
protected  JButton btnCancel
          The Cancel button, clicking this button will abort the game.
protected  JButton btnOK
          The OK button, clicking this button will launch the game.
protected  JCheckBox bufferstrategy
          Check box UI for bufferstrategy option.
protected  JCheckBox fullscreen
          Check box UI for fullscreen option.
protected  JCheckBox sound
          Check box UI for sound option.
protected  URL splashImage
          The splash image URL, null if the game has no splash image.
 
Fields inherited from class javax.swing.JDialog
accessibleContext, rootPane, rootPaneCheckingEnabled
 
Fields inherited from class java.awt.Component
BOTTOM_ALIGNMENT, CENTER_ALIGNMENT, LEFT_ALIGNMENT, RIGHT_ALIGNMENT, TOP_ALIGNMENT
 
Fields inherited from interface javax.swing.WindowConstants
DISPOSE_ON_CLOSE, DO_NOTHING_ON_CLOSE, EXIT_ON_CLOSE, HIDE_ON_CLOSE
 
Fields inherited from interface java.awt.image.ImageObserver
ABORT, ALLBITS, ERROR, FRAMEBITS, HEIGHT, PROPERTIES, SOMEBITS, WIDTH
 
Constructor Summary
GameSettings()
          Builds up the game settings/options dialog for the player without splash image.
GameSettings(boolean fullscreen)
          Skips the option dialog, and directly init the game with specified mode and using bufferstrategy by default.
GameSettings(boolean fullScreen, boolean bufferStrategy)
          Skips the option dialog, and start the game with specified mode and bufferstrategy.
GameSettings(URL splashImage)
          Builds up the game settings/options dialog for the user with specified splash image URL or null .
 
Method Summary
 void actionPerformed(ActionEvent e)
          Notified when the user press 'OK' or 'Cancel' button.
protected  JPanel initGUI()
          Initializes the content of the settings, by default consists of splash image (if any), settings panel, and launch panel.
protected  JPanel initSettings()
          Initializes and return the settings GUI, override this method to insert new option or remove some options.
 void run()
          Thread implementation when the user pressing 'OK' button, directly called start() method.
abstract  void start()
          Starts the game with all the defined settings, the game is actually created in this method.
 
Methods inherited from class javax.swing.JDialog
addImpl, createRootPane, dialogInit, getAccessibleContext, getContentPane, getDefaultCloseOperation, getGlassPane, getJMenuBar, getLayeredPane, getRootPane, isDefaultLookAndFeelDecorated, isRootPaneCheckingEnabled, paramString, processWindowEvent, remove, setContentPane, setDefaultCloseOperation, setDefaultLookAndFeelDecorated, setGlassPane, setJMenuBar, setLayeredPane, setLayout, setRootPane, setRootPaneCheckingEnabled, update
 
Methods inherited from class java.awt.Dialog
addNotify, getTitle, hide, isModal, isResizable, isUndecorated, setModal, setResizable, setTitle, setUndecorated, show
 
Methods inherited from class java.awt.Window
addPropertyChangeListener, addPropertyChangeListener, addWindowFocusListener, addWindowListener, addWindowStateListener, applyResourceBundle, applyResourceBundle, createBufferStrategy, createBufferStrategy, dispose, finalize, getBufferStrategy, getFocusableWindowState, getFocusCycleRootAncestor, getFocusOwner, getFocusTraversalKeys, getGraphicsConfiguration, getInputContext, getListeners, getLocale, getMostRecentFocusOwner, getOwnedWindows, getOwner, getToolkit, getWarningString, getWindowFocusListeners, getWindowListeners, getWindowStateListeners, isActive, isAlwaysOnTop, isFocusableWindow, isFocusCycleRoot, isFocused, isLocationByPlatform, isShowing, pack, postEvent, processEvent, processWindowFocusEvent, processWindowStateEvent, removeWindowFocusListener, removeWindowListener, removeWindowStateListener, setAlwaysOnTop, setBounds, setCursor, setFocusableWindowState, setFocusCycleRoot, setLocationByPlatform, setLocationRelativeTo, toBack, toFront
 
Methods inherited from class java.awt.Container
add, add, add, add, add, addContainerListener, applyComponentOrientation, areFocusTraversalKeysSet, countComponents, deliverEvent, doLayout, findComponentAt, findComponentAt, getAlignmentX, getAlignmentY, getComponent, getComponentAt, getComponentAt, getComponentCount, getComponents, getComponentZOrder, getContainerListeners, getFocusTraversalPolicy, getInsets, getLayout, getMaximumSize, getMinimumSize, getMousePosition, getPreferredSize, insets, invalidate, isAncestorOf, isFocusCycleRoot, isFocusTraversalPolicyProvider, isFocusTraversalPolicySet, layout, list, list, locate, minimumSize, paint, paintComponents, preferredSize, print, printComponents, processContainerEvent, remove, removeAll, removeContainerListener, removeNotify, setComponentZOrder, setFocusTraversalKeys, setFocusTraversalPolicy, setFocusTraversalPolicyProvider, setFont, transferFocusBackward, transferFocusDownCycle, validate, validateTree
 
Methods inherited from class java.awt.Component
action, add, addComponentListener, addFocusListener, addHierarchyBoundsListener, addHierarchyListener, addInputMethodListener, addKeyListener, addMouseListener, addMouseMotionListener, addMouseWheelListener, bounds, checkImage, checkImage, coalesceEvents, contains, contains, createImage, createImage, createVolatileImage, createVolatileImage, disable, disableEvents, dispatchEvent, enable, enable, enableEvents, enableInputMethods, firePropertyChange, firePropertyChange, firePropertyChange, firePropertyChange, firePropertyChange, firePropertyChange, firePropertyChange, firePropertyChange, firePropertyChange, getBackground, getBounds, getBounds, getColorModel, getComponentListeners, getComponentOrientation, getCursor, getDropTarget, getFocusListeners, getFocusTraversalKeysEnabled, getFont, getFontMetrics, getForeground, getGraphics, getHeight, getHierarchyBoundsListeners, getHierarchyListeners, getIgnoreRepaint, getInputMethodListeners, getInputMethodRequests, getKeyListeners, getLocation, getLocation, getLocationOnScreen, getMouseListeners, getMouseMotionListeners, getMousePosition, getMouseWheelListeners, getName, getParent, getPeer, getPropertyChangeListeners, getPropertyChangeListeners, getSize, getSize, getTreeLock, getWidth, getX, getY, gotFocus, handleEvent, hasFocus, imageUpdate, inside, isBackgroundSet, isCursorSet, isDisplayable, isDoubleBuffered, isEnabled, isFocusable, isFocusOwner, isFocusTraversable, isFontSet, isForegroundSet, isLightweight, isMaximumSizeSet, isMinimumSizeSet, isOpaque, isPreferredSizeSet, isValid, isVisible, keyDown, keyUp, list, list, list, location, lostFocus, mouseDown, mouseDrag, mouseEnter, mouseExit, mouseMove, mouseUp, move, nextFocus, paintAll, prepareImage, prepareImage, printAll, processComponentEvent, processFocusEvent, processHierarchyBoundsEvent, processHierarchyEvent, processInputMethodEvent, processKeyEvent, processMouseEvent, processMouseMotionEvent, processMouseWheelEvent, remove, removeComponentListener, removeFocusListener, removeHierarchyBoundsListener, removeHierarchyListener, removeInputMethodListener, removeKeyListener, removeMouseListener, removeMouseMotionListener, removeMouseWheelListener, removePropertyChangeListener, removePropertyChangeListener, repaint, repaint, repaint, repaint, requestFocus, requestFocus, requestFocusInWindow, requestFocusInWindow, reshape, resize, resize, setBackground, setBounds, setComponentOrientation, setDropTarget, setEnabled, setFocusable, setFocusTraversalKeysEnabled, setForeground, setIgnoreRepaint, setLocale, setLocation, setLocation, setMaximumSize, setMinimumSize, setName, setPreferredSize, setSize, setSize, setVisible, show, size, toString, transferFocus, transferFocusUpCycle
 
Methods inherited from class java.lang.Object
clone, equals, getClass, hashCode, notify, notifyAll, wait, wait, wait
 

Field Detail

fullscreen

protected JCheckBox fullscreen
Check box UI for fullscreen option.


bufferstrategy

protected JCheckBox bufferstrategy
Check box UI for bufferstrategy option.


sound

protected JCheckBox sound
Check box UI for sound option.


btnOK

protected JButton btnOK
The OK button, clicking this button will launch the game.

See Also:
actionPerformed(ActionEvent)

btnCancel

protected JButton btnCancel
The Cancel button, clicking this button will abort the game.

See Also:
actionPerformed(ActionEvent)

splashImage

protected URL splashImage
The splash image URL, null if the game has no splash image.

Constructor Detail

GameSettings

public GameSettings(URL splashImage)
Builds up the game settings/options dialog for the user with specified splash image URL or null .

For example :

    new GameSettings(YourGame.class.getResource("splash.jpg")) {
       public void start() {
          // create the actual game in here
       }
    };
 

See Also:
GameLoader

GameSettings

public GameSettings()
Builds up the game settings/options dialog for the player without splash image.


GameSettings

public GameSettings(boolean fullScreen,
                    boolean bufferStrategy)
Skips the option dialog, and start the game with specified mode and bufferstrategy.

Used for direct play without specifying the game option everytime running the game while in developing stage.


GameSettings

public GameSettings(boolean fullscreen)
Skips the option dialog, and directly init the game with specified mode and using bufferstrategy by default.

Used in game development, so no need to always specify the game option everytime running the game while in developing stage.

Method Detail

initGUI

protected JPanel initGUI()
Initializes the content of the settings, by default consists of splash image (if any), settings panel, and launch panel.

Example of modifying some UI components :
The first component is splash image (JLabel), settings panel (JPanel), and launch panel (JPanel), using BorderLayout

    protected JPanel initGUI() {
       JPanel pane = super.initGUI();

       // modify launch panel, add Credits button
       JPanel launchPane = (JPanel) pane.getComponent(2);
       launchPane.add(new JButton("Credits"), 0);

       // remove splash image
       pane.remove(0);

       // insert splash image
       pane.add(new JButton("Splash Image"), BorderLayout.NORTH);
    }
 

Returns:
The GameSettings content pane.
See Also:
initSettings()

initSettings

protected JPanel initSettings()
Initializes and return the settings GUI, override this method to insert new option or remove some options.

For example :

    JCheckBox opengl;

    protected JPanel initSettings() {
       JPanel pane = super.initSettings();

       // add opengl option
       opengl = new JCheckBox("OpenGL");

       // remove bufferstrategy option
       pane.remove(bufferstrategy);

       // set windowed mode by default
       fullscreen.setSelected(false);
    }
 

Returns:
The settings panel where all the settings are layed out.

actionPerformed

public void actionPerformed(ActionEvent e)
Notified when the user press 'OK' or 'Cancel' button.

Pressing 'OK' will launch the game, while pressing 'Cancel' will immediatelly close the app.

Specified by:
actionPerformed in interface ActionListener

run

public void run()
Thread implementation when the user pressing 'OK' button, directly called start() method.

Specified by:
run in interface Runnable

start

public abstract void start()
Starts the game with all the defined settings, the game is actually created in this method.

This method is called when the user is pressing the 'OK' button.


GTGE API

Copyright © 2003-2005 Golden T Studios. All rights reserved. Use is subject to license terms.
GoldenStudios.or.id