public class BoggleView extends JFrame implements ActionListener
JFrame.AccessibleJFrame
Frame.AccessibleAWTFrame
Window.AccessibleAWTWindow, Window.Type
Container.AccessibleAWTContainer
Component.AccessibleAWTComponent, Component.BaselineResizeBehavior, Component.BltBufferStrategy, Component.FlipBufferStrategy
Modifier and Type | Field and Description |
---|---|
static String |
CLEAR_COMMAND
The string representing the clear command.
|
private JTextArea |
correctWords
The text area that displays the list of correct words.
|
private List<JButton> |
diceButtons
A list that contains references to the buttons representing the dice.
|
private JTextArea |
incorrectWords
The text area that displays the list of incorrect words.
|
static String |
ROLL_COMMAND
The string representing the roll command.
|
static String |
SUBMIT_COMMAND
The string repesenting the submit command.
|
private Set<JButton> |
usedButtons
The set of dice buttons that have already been used to form the current
word.
|
private JTextField |
word
The text field that displays the current word.
|
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
DISPOSE_ON_CLOSE, DO_NOTHING_ON_CLOSE, HIDE_ON_CLOSE
ABORT, ALLBITS, ERROR, FRAMEBITS, HEIGHT, PROPERTIES, SOMEBITS, WIDTH
Constructor and Description |
---|
BoggleView(BoggleController controller)
Create the Boggle user interface.
|
Modifier and Type | Method and Description |
---|---|
void |
actionPerformed(ActionEvent event)
Responds to events from the view.
|
private void |
clearCorrectWords()
Clears the list of correct words.
|
private void |
clearCurrentWord()
Clears the current word and prepares the view to accept a new word.
|
private void |
clearIncorrectWords()
Clears the list of incorrect words.
|
private void |
disableAllDiceButtons()
Disable all of the buttons representing the dice.
|
private void |
enableAllDiceButtons()
Enable all of the buttons representing the dice.
|
private List<JButton> |
findNeighbors(int idx)
Returns the buttons surrounding the button representing the die that was
last selected by the user.
|
String |
getWord()
Get the current string that is in the word text field.
|
static void |
main(String[] args) |
private JPanel |
makeControlPanel(BoggleController controller)
Creates the panel that contains the clear, submit, and re-roll buttons, and
the text field for the word.
|
private JPanel |
makeDicePanel()
Creates the panel that contains the buttons representing the Boggle dice.
|
private JPanel |
makeLeftPanel()
Creates the left-hand panel.
|
private JPanel |
makeMiddlePanel(BoggleController controller)
Creates the middle panel.
|
private JPanel |
makeRightPanel()
Creates the right-hand panel.
|
void |
setDice(List<BoggleDie> dice)
Sets the text on the buttons representing the dice.
|
void |
setWordIsCorrect(boolean isCorrect)
Causes the view to update after the submitted word is evaluated for
correctness.
|
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
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
getFont, postEvent
public static final String CLEAR_COMMAND
public static final String ROLL_COMMAND
public static final String SUBMIT_COMMAND
private List<JButton> diceButtons
private JTextField word
private Set<JButton> usedButtons
private JTextArea correctWords
private JTextArea incorrectWords
public BoggleView(BoggleController controller)
controller
- the controller that listens for submit and roll eventsprivate JPanel makeDicePanel()
JPanel
that contains the buttons representing the
Boggle dice.private List<JButton> findNeighbors(int idx)
idx
- the index of the button representing the die that was last
selected by the userprivate void disableAllDiceButtons()
private void enableAllDiceButtons()
public void actionPerformed(ActionEvent event)
BoggleView.CLEAR_COMMAND
,
BoggleView.ROLL_COMMAND
, or
BoggleView.SUBMIT_COMMAND
.actionPerformed
in interface ActionListener
ActionListener.actionPerformed(java.awt.event.ActionEvent)
event
- an event emitted by the viewprivate JPanel makeLeftPanel()
JPanel
with all of its necessary
componentsprivate JPanel makeRightPanel()
JPanel
with all of its necessary
componentsprivate JPanel makeMiddlePanel(BoggleController controller)
JPanel
with all of its necessary componentsprivate JPanel makeControlPanel(BoggleController controller)
JPanel
that contains the controls below the dicepublic String getWord()
public void setDice(List<BoggleDie> dice)
dice
- a list of 16 Boggle dicedice.size() == 16
public void setWordIsCorrect(boolean isCorrect)
isCorrect == true
then the current word is
added to the list of correct words. If isCorrect == false
then
the current word is added to the list of incorrect words. In both cases,
the current word is cleared.isCorrect
- true
if the current word has been determined to be a
legal Boggle word, false
otherwiseprivate void clearCorrectWords()
private void clearIncorrectWords()
private void clearCurrentWord()
public static void main(String[] args)