Holger's
Java API

com.antelmann.game.quiz
Class DemoQuizFrame

java.lang.Object
  extended by java.awt.Component
      extended by java.awt.Container
          extended by java.awt.Window
              extended by java.awt.Frame
                  extended by javax.swing.JFrame
                      extended by com.antelmann.util.gui.JMainFrame
                          extended by com.antelmann.game.quiz.DemoQuizFrame
All Implemented Interfaces:
AnswerHandler, QuizListener, ImageObserver, MenuContainer, Serializable, Accessible, RootPaneContainer, WindowConstants

public class DemoQuizFrame
extends JMainFrame
implements QuizListener

Author:
Holger Antelmann
See Also:
Serialized Form

Nested Class Summary
 
Nested classes/interfaces inherited from class javax.swing.JFrame
JFrame.AccessibleJFrame
 
Nested classes/interfaces inherited from class java.awt.Frame
Frame.AccessibleAWTFrame
 
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  QuestionComponentFactory factory
           
protected  Font font
           
protected  MyFile highscoreFile
           
protected  List<HighscoreEntry> highscoreList
           
protected  List<Question> list
           
protected  Logger logger
           
protected  int numberOfQuestions
           
protected  Properties properties
           
protected  String user
           
 
Fields inherited from class com.antelmann.util.gui.JMainFrame
hasStatusBar, statusBar, statusLabel, verbose
 
Fields inherited from class javax.swing.JFrame
accessibleContext, EXIT_ON_CLOSE, rootPane, rootPaneCheckingEnabled
 
Fields inherited from class java.awt.Frame
CROSSHAIR_CURSOR, DEFAULT_CURSOR, E_RESIZE_CURSOR, HAND_CURSOR, ICONIFIED, MAXIMIZED_BOTH, MAXIMIZED_HORIZ, MAXIMIZED_VERT, MOVE_CURSOR, N_RESIZE_CURSOR, NE_RESIZE_CURSOR, NORMAL, NW_RESIZE_CURSOR, S_RESIZE_CURSOR, SE_RESIZE_CURSOR, SW_RESIZE_CURSOR, TEXT_CURSOR, W_RESIZE_CURSOR, WAIT_CURSOR
 
Fields inherited from class java.awt.Component
BOTTOM_ALIGNMENT, CENTER_ALIGNMENT, LEFT_ALIGNMENT, RIGHT_ALIGNMENT, TOP_ALIGNMENT
 
Fields inherited from interface com.antelmann.game.quiz.AnswerHandler
NO_ANSWER
 
Fields inherited from interface javax.swing.WindowConstants
DISPOSE_ON_CLOSE, DO_NOTHING_ON_CLOSE, HIDE_ON_CLOSE
 
Fields inherited from interface java.awt.image.ImageObserver
ABORT, ALLBITS, ERROR, FRAMEBITS, HEIGHT, PROPERTIES, SOMEBITS, WIDTH
 
Constructor Summary
DemoQuizFrame()
          reads required parameters from the System properties.
DemoQuizFrame(File questionFile, int numberOfQuestions, File highscoreFile, ImageIcon logo, Font font)
           
DemoQuizFrame(File questionFile, int numberOfQuestions, File highscoreFile, ImageIcon logo, Font font, Properties props)
           
DemoQuizFrame(List<Question> questionList, int numberOfQuestions, Collection<HighscoreEntry> scores, ImageIcon logo, Font font)
           
DemoQuizFrame(List<Question> questionList, int numberOfQuestions, Collection<HighscoreEntry> scores, ImageIcon logo, Font font, Properties props)
           
 
Method Summary
protected  double calculateScore(Question[] q, int[] answers, long[] times)
           
protected  List<Question> generateQuestions()
          may be overridden to insert a few questions manually
 List<HighscoreEntry> getHighscores()
          returns an unmodifiable view
 Logger getLogger()
           
static List<HighscoreEntry> loadHighscores(File file)
           
static List<Question> loadQuestions(File file)
          reads questions from a file in a specific format.
 void questionAnswered(Question q, int answer, long time)
          called by a gui component when a user answered the given question
 HighscoreEntry quizFinished(String user, Question[] q, int[] answers, long[] times)
           
protected  void test()
           
 
Methods inherited from class com.antelmann.util.gui.JMainFrame
complain, getStatusText, hasStatusBar, say, updateStatusText
 
Methods inherited from class javax.swing.JFrame
addImpl, createRootPane, frameInit, getAccessibleContext, getContentPane, getDefaultCloseOperation, getGlassPane, getJMenuBar, getLayeredPane, getRootPane, isDefaultLookAndFeelDecorated, isRootPaneCheckingEnabled, paramString, processWindowEvent, remove, setContentPane, setDefaultCloseOperation, setDefaultLookAndFeelDecorated, setGlassPane, setIconImage, setJMenuBar, setLayeredPane, setLayout, setRootPane, setRootPaneCheckingEnabled, update
 
Methods inherited from class java.awt.Frame
addNotify, finalize, getCursorType, getExtendedState, getFrames, getIconImage, getMaximizedBounds, getMenuBar, getState, getTitle, isResizable, isUndecorated, remove, removeNotify, setCursor, setExtendedState, setMaximizedBounds, setMenuBar, setResizable, setState, setTitle, setUndecorated
 
Methods inherited from class java.awt.Window
addPropertyChangeListener, addPropertyChangeListener, addWindowFocusListener, addWindowListener, addWindowStateListener, applyResourceBundle, applyResourceBundle, createBufferStrategy, createBufferStrategy, dispose, getBufferStrategy, getFocusableWindowState, getFocusCycleRootAncestor, getFocusOwner, getFocusTraversalKeys, getGraphicsConfiguration, getInputContext, getListeners, getLocale, getMostRecentFocusOwner, getOwnedWindows, getOwner, getToolkit, getWarningString, getWindowFocusListeners, getWindowListeners, getWindowStateListeners, hide, isActive, isAlwaysOnTop, isFocusableWindow, isFocusCycleRoot, isFocused, isLocationByPlatform, isShowing, pack, postEvent, processEvent, processWindowFocusEvent, processWindowStateEvent, removeWindowFocusListener, removeWindowListener, removeWindowStateListener, setAlwaysOnTop, setBounds, setCursor, setFocusableWindowState, setFocusCycleRoot, setLocationByPlatform, setLocationRelativeTo, show, 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, 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, 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
 
Methods inherited from interface java.awt.MenuContainer
getFont, postEvent
 

Field Detail

font

protected Font font

factory

protected QuestionComponentFactory factory

numberOfQuestions

protected int numberOfQuestions

list

protected List<Question> list

highscoreList

protected List<HighscoreEntry> highscoreList

highscoreFile

protected MyFile highscoreFile

user

protected String user

properties

protected Properties properties

logger

protected Logger logger
Constructor Detail

DemoQuizFrame

public DemoQuizFrame()
              throws FontFormatException,
                     IOException
reads required parameters from the System properties. The following parameters are required from the System properties:

Throws:
FontFormatException
IOException

DemoQuizFrame

public DemoQuizFrame(File questionFile,
                     int numberOfQuestions,
                     File highscoreFile,
                     ImageIcon logo,
                     Font font)
              throws IOException
Throws:
IOException

DemoQuizFrame

public DemoQuizFrame(File questionFile,
                     int numberOfQuestions,
                     File highscoreFile,
                     ImageIcon logo,
                     Font font,
                     Properties props)
              throws IOException
Throws:
IOException

DemoQuizFrame

public DemoQuizFrame(List<Question> questionList,
                     int numberOfQuestions,
                     Collection<HighscoreEntry> scores,
                     ImageIcon logo,
                     Font font)

DemoQuizFrame

public DemoQuizFrame(List<Question> questionList,
                     int numberOfQuestions,
                     Collection<HighscoreEntry> scores,
                     ImageIcon logo,
                     Font font,
                     Properties props)
Method Detail

test

protected void test()

getLogger

public Logger getLogger()

generateQuestions

protected List<Question> generateQuestions()
may be overridden to insert a few questions manually


getHighscores

public List<HighscoreEntry> getHighscores()
returns an unmodifiable view


questionAnswered

public void questionAnswered(Question q,
                             int answer,
                             long time)
Description copied from interface: AnswerHandler
called by a gui component when a user answered the given question

Specified by:
questionAnswered in interface AnswerHandler

quizFinished

public HighscoreEntry quizFinished(String user,
                                   Question[] q,
                                   int[] answers,
                                   long[] times)
Specified by:
quizFinished in interface QuizListener

calculateScore

protected double calculateScore(Question[] q,
                                int[] answers,
                                long[] times)

loadQuestions

public static List<Question> loadQuestions(File file)
                                    throws IOException
reads questions from a file in a specific format. The format requires the following fields in a line (with tab as field separator): timeout, question, answerNumber, answerOption1, answerOption2, ...

Throws:
IOException

loadHighscores

public static List<HighscoreEntry> loadHighscores(File file)
                                           throws IOException
Throws:
IOException


(c) 2001-2006 Holger Antelmann - all rights reserved (contact: info@antelmann.com)
see www.antelmann.com/developer for further details and available downloads