public class MainWindow
extends javax.swing.JFrame
ControlInterface
,
Serialized Formjavax.swing.JFrame.AccessibleJFrame
java.awt.Window.AccessibleAWTWindow, java.awt.Window.Type
Modifier and Type | Field and Description |
---|---|
private javax.swing.JDialog |
aboutDialog |
private int |
AI_GUESS_DELAY
The delay between two guesses (if the makeGuess()-Function of the
AI was fast enouth).
|
private javax.swing.Timer |
aiTimer |
private javax.swing.JButton |
chosenColorButton |
private static ControlInterface |
ci |
private javax.swing.JButton[] |
colorButtons |
private javax.swing.JScrollPane |
colorScrollPane |
private javax.swing.JSlider |
colorsSlider |
private javax.swing.JCheckBox |
doubleColorsCheckBox |
private javax.swing.JFileChooser |
fileChooser |
private javax.swing.JButton[][] |
gameButtons |
private javax.swing.JMenuBar |
gameMenuBar |
private javax.swing.JComboBox<java.lang.String> |
gameModeComboBox |
private javax.swing.JPanel |
gamePanel |
private javax.swing.JLabel |
gamePlaceholder |
private javax.swing.JScrollPane |
gameScrollPane |
private javax.swing.JLabel |
gameState |
private javax.swing.JSlider |
gameWidthSlider |
private javax.swing.JSpinner |
maxTriesSpinner |
private javax.swing.JButton[] |
secretCodeButtons |
private javax.swing.JPanel |
secretCodePanel |
private javax.swing.JDialog |
settingsDialog |
accessibleContext, EXIT_ON_CLOSE, rootPane, rootPaneCheckingEnabled
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
BOTTOM_ALIGNMENT, CENTER_ALIGNMENT, LEFT_ALIGNMENT, RIGHT_ALIGNMENT, TOP_ALIGNMENT
Constructor and Description |
---|
MainWindow()
Creates new form MainWindow and initializes all components.
|
Modifier and Type | Method and Description |
---|---|
private void |
aboutMenuItemActionPerformed(java.awt.event.ActionEvent evt)
Show the about dialog.
|
private void |
addRow()
Add a new Row to the game table.
|
private void |
cancelButtonActionPerformed(java.awt.event.ActionEvent evt)
Hide the settings dialog without saving.
|
private void |
closeButtonActionPerformed(java.awt.event.ActionEvent evt)
Hide the about dialog.
|
private void |
colorButtonsActionPerformed(java.awt.event.ActionEvent evt)
Set the chosen color.
|
private void |
doAIGame()
Run an AI game until the game is solved.
|
private void |
editSettingsMenuItemActionPerformed(java.awt.event.ActionEvent evt)
Show the settings dialog.
|
private void |
gameButtonPinActionPerformed(java.awt.event.ActionEvent evt)
Place the chosen color to the game table pin.
|
private void |
gameButtonResultActionPerformed(java.awt.event.ActionEvent evt)
Check the active game Row and display the result.
|
private void |
howToMenuItemActionPerformed(java.awt.event.ActionEvent evt)
Show the how-to.pdf in the system std. viewer.
|
private void |
initColorTable()
Initialize the color table with the available colors.
|
private void |
initComponents()
Init all GUI components (Constructor subfunction,
called only once).
|
private void |
initGameTable()
Initialize the game table (game field).
|
private void |
initKeyListener()
Initialize a global Key Listener.
|
private void |
initNewGame()
Initialize all GUI components for a new game.
|
private void |
initSecretCode()
Initialize the secret code row.
|
private void |
keyTyped(java.awt.event.KeyEvent k)
Parse the typed key.
|
private void |
loadMenuItemActionPerformed(java.awt.event.ActionEvent evt)
Show file browser dialog and load chosen game.
|
static void |
main(java.lang.String[] args)
Parse command line arguments, change to "Nimbus" Look & Feel
(if installed) and initialize the main window with a new standard game.
|
private void |
newGameMenuItemActionPerformed(java.awt.event.ActionEvent evt)
Initialize a new game.
|
private static void |
parseArgs(java.lang.String[] args)
Subfunction to parse the arguments from the command line.
|
private void |
parseGameState(int state)
Parse the return state of the ControlInterface.turn() function.
|
private void |
quitMenuItemActionPerformed(java.awt.event.ActionEvent evt)
Quit the whole game.
|
private void |
revealSecretCode()
Reveals the secret code by showing it in the GUI.
|
private boolean |
rowIsSet()
Checks if the complete active Row in the game table is set
with a color.
|
private void |
saveAsMenuItemActionPerformed(java.awt.event.ActionEvent evt)
Show file browser dialog and save game to the given path and name.
|
private void |
saveButtonActionPerformed(java.awt.event.ActionEvent evt)
Save, init new game (with new settings) and hide dialog.
|
private void |
secretCodeButtonsActionPerformed(java.awt.event.ActionEvent evt)
Set the secret code color.
|
private void |
setLastGuessMenuItemMenuItemActionPerformed(java.awt.event.ActionEvent evt)
Set the last guess in the active row.
|
private void |
showGameRow(int row)
Show the guess row.
|
private void |
showHintMenuItemActionPerformed(java.awt.event.ActionEvent evt)
Fill out the current game table Row with a guess.
|
private void |
showLoadedGameTable()
Draw the game table by using loaded game data.
|
private void |
showResultRow(int row)
Show the guess result of a Row.
|
private Color |
translateColor(java.awt.Color color)
Translate the java.awt.Color to a common.Color.
|
private void |
validateGuessMenuItemActionPerformed(java.awt.event.ActionEvent evt)
Checks if the guess is valide or makes no sense in context
of previous guesses and results.
|
private void |
writeSecrectCode()
Cycles through the secret code (GUI) and sets it in the game engine.
|
private void |
writeToGameField()
Cycles through the active game Row (GUI) and sets it in the game engine.
|
addImpl, createRootPane, frameInit, getAccessibleContext, getContentPane, getDefaultCloseOperation, getGlassPane, getGraphics, getJMenuBar, getLayeredPane, getRootPane, getTransferHandler, isDefaultLookAndFeelDecorated, isRootPaneCheckingEnabled, paramString, processWindowEvent, remove, repaint, setContentPane, setDefaultCloseOperation, setDefaultLookAndFeelDecorated, setGlassPane, setIconImage, setJMenuBar, setLayeredPane, setLayout, setRootPane, setRootPaneCheckingEnabled, setTransferHandler, update
addNotify, getCursorType, getExtendedState, getFrames, getIconImage, getMaximizedBounds, getMenuBar, getState, getTitle, isResizable, isUndecorated, remove, removeNotify, setBackground, setCursor, setExtendedState, setMaximizedBounds, setMenuBar, setOpacity, setResizable, setShape, setState, setTitle, setUndecorated
addPropertyChangeListener, addPropertyChangeListener, addWindowFocusListener, addWindowListener, addWindowStateListener, applyResourceBundle, applyResourceBundle, createBufferStrategy, createBufferStrategy, dispose, getBackground, getBufferStrategy, getFocusableWindowState, getFocusCycleRootAncestor, getFocusOwner, getFocusTraversalKeys, getIconImages, getInputContext, getListeners, getLocale, getModalExclusionType, getMostRecentFocusOwner, getOpacity, getOwnedWindows, getOwner, getOwnerlessWindows, getShape, getToolkit, getType, getWarningString, getWindowFocusListeners, getWindowListeners, getWindows, getWindowStateListeners, hide, isActive, isAlwaysOnTop, isAlwaysOnTopSupported, isAutoRequestFocus, isFocusableWindow, isFocusCycleRoot, isFocused, isLocationByPlatform, isOpaque, isShowing, isValidateRoot, pack, paint, postEvent, processEvent, processWindowFocusEvent, processWindowStateEvent, removeWindowFocusListener, removeWindowListener, removeWindowStateListener, reshape, setAlwaysOnTop, setAutoRequestFocus, setBounds, setBounds, setCursor, setFocusableWindowState, setFocusCycleRoot, setIconImages, setLocation, setLocation, setLocationByPlatform, setLocationRelativeTo, setMinimumSize, setModalExclusionType, setSize, setSize, setType, setVisible, show, toBack, toFront
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, paintComponents, preferredSize, print, printComponents, processContainerEvent, remove, removeAll, removeContainerListener, setComponentZOrder, setFocusTraversalKeys, setFocusTraversalPolicy, setFocusTraversalPolicyProvider, setFont, transferFocusDownCycle, validate, validateTree
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, getBaseline, getBaselineResizeBehavior, getBounds, getBounds, getColorModel, getComponentListeners, getComponentOrientation, getCursor, getDropTarget, getFocusListeners, getFocusTraversalKeysEnabled, getFont, getFontMetrics, getForeground, getGraphicsConfiguration, 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, 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, requestFocus, requestFocus, requestFocusInWindow, requestFocusInWindow, resize, resize, revalidate, setComponentOrientation, setDropTarget, setEnabled, setFocusable, setFocusTraversalKeysEnabled, setForeground, setIgnoreRepaint, setLocale, setMaximumSize, setName, setPreferredSize, show, size, toString, transferFocus, transferFocusBackward, transferFocusUpCycle
private final int AI_GUESS_DELAY
private static ControlInterface ci
private javax.swing.JDialog aboutDialog
private javax.swing.JButton chosenColorButton
private javax.swing.JSlider colorsSlider
private javax.swing.JCheckBox doubleColorsCheckBox
private javax.swing.JFileChooser fileChooser
private javax.swing.JMenuBar gameMenuBar
private javax.swing.JSlider gameWidthSlider
private javax.swing.JSpinner maxTriesSpinner
private javax.swing.JDialog settingsDialog
private javax.swing.JComboBox<java.lang.String> gameModeComboBox
private javax.swing.JButton[] colorButtons
private javax.swing.JScrollPane colorScrollPane
private javax.swing.JButton[] secretCodeButtons
private javax.swing.JPanel secretCodePanel
private javax.swing.JButton[][] gameButtons
private javax.swing.JPanel gamePanel
private javax.swing.JScrollPane gameScrollPane
private javax.swing.JLabel gamePlaceholder
private javax.swing.JLabel gameState
private javax.swing.Timer aiTimer
public MainWindow()
private void initComponents()
private void initNewGame()
private void initColorTable()
private void initGameTable()
showLoadedGameTable()
private void showLoadedGameTable()
private void initSecretCode()
ControlInterface
,
SecretCode
private void initKeyListener()
keyTyped(java.awt.event.KeyEvent)
private void aboutMenuItemActionPerformed(java.awt.event.ActionEvent evt)
evt
- The triggered event. Not used.private void closeButtonActionPerformed(java.awt.event.ActionEvent evt)
evt
- The triggered event. Not used.private void editSettingsMenuItemActionPerformed(java.awt.event.ActionEvent evt)
evt
- The triggered event. Not used.private void cancelButtonActionPerformed(java.awt.event.ActionEvent evt)
evt
- The triggered event. Not used.private void saveButtonActionPerformed(java.awt.event.ActionEvent evt)
evt
- The triggered event. Not used.private void loadMenuItemActionPerformed(java.awt.event.ActionEvent evt)
evt
- The triggered event. Not used.private void saveAsMenuItemActionPerformed(java.awt.event.ActionEvent evt)
evt
- The triggered event. Not used.private boolean rowIsSet()
private void writeSecrectCode()
translateColor(java.awt.Color)
private void writeToGameField()
translateColor(java.awt.Color)
private Color translateColor(java.awt.Color color)
color
- A color in the java.awt.Color format.Color
,
Color
private void revealSecretCode()
private void showResultRow(int row)
row
- The row in which the result is displayed.private void showGameRow(int row)
row
- The row in which the guess is displayed.private void parseGameState(int state)
state
- A state integer like the ControlInterface.turn() function
returns it.ControlInterface
,
addRow()
private void addRow()
private void keyTyped(java.awt.event.KeyEvent k)
k
- The key event that should be parsed.private void doAIGame()
AI_GUESS_DELAY
private static void parseArgs(java.lang.String[] args)
args
- Command line arguments from the main function.main(java.lang.String[])
private void quitMenuItemActionPerformed(java.awt.event.ActionEvent evt)
evt
- The triggered event. Not used.private void newGameMenuItemActionPerformed(java.awt.event.ActionEvent evt)
evt
- The triggered event. Not used.private void showHintMenuItemActionPerformed(java.awt.event.ActionEvent evt)
evt
- The triggered event. Not used.GeneticSolver
private void validateGuessMenuItemActionPerformed(java.awt.event.ActionEvent evt)
evt
- The triggered event. Not used.Clues
private void setLastGuessMenuItemMenuItemActionPerformed(java.awt.event.ActionEvent evt)
evt
- The triggered event. Not used.private void howToMenuItemActionPerformed(java.awt.event.ActionEvent evt)
evt
- The triggered event. Not used.Desktop
private void colorButtonsActionPerformed(java.awt.event.ActionEvent evt)
evt
- The triggered event.
The souce object color will be used to set the chosen color.private void secretCodeButtonsActionPerformed(java.awt.event.ActionEvent evt)
evt
- The triggered event.
The souce object color will be used to set the secret code color.private void gameButtonResultActionPerformed(java.awt.event.ActionEvent evt)
evt
- The triggered event. Not used.writeToGameField()
,
parseGameState(int)
,
showResultRow(int)
private void gameButtonPinActionPerformed(java.awt.event.ActionEvent evt)
evt
- The triggered event.
The souce object color will be set to the chosen color.public static void main(java.lang.String[] args)
args
- The command line arguments.