public class TvH extends Tableau implements Tableau.Listener, Runnable, GrafVal
Tableau
and, hence, also a demo
for this class
. It features the well known
sorted stack moving game with two to ten disks. You can play by rule as
well as wrongly. The recursive approach to the solution may well be
demonstrated by hand or be performed automatically.Tableau
, das
das Stapelumsortierspiel Türme von Hanoi mit 2 bis 10 Turmscheiben und
drei Bedienknöpfen darstellt. Das Spiel kann von Hand regelgerecht und
auch regelwidrig gespielt werden. Sein (rekursiver) Lösungsansatz kann
vorgeführt werden und auch als automatischer Ablauf gezeigt werden.de.frame4j
(Frame4J
) und insbesondere auf dem Paket
de.frame4j.graf
.de.frame4j.graf
,
Serialized FormModifier and Type | Class and Description |
---|---|
class |
TvH.Rahmen
(Hilfs-) Rahmen zum Einbetten eines TvH-Objekts.
|
protected class |
TvH.Scheibe
Die Darstellung der Turmscheiben.
|
Tableau.Anchor, Tableau.Element, Tableau.Listener
JComponent.AccessibleJComponent
Container.AccessibleAWTContainer
Component.AccessibleAWTComponent, Component.BaselineResizeBehavior, Component.BltBufferStrategy, Component.FlipBufferStrategy
Modifier and Type | Field and Description |
---|---|
static String |
BG_FILE
Default-Name der Datei für das Hintergrundbild.
|
int |
breite
Breite der größten Scheibe.
|
protected Tableau.Anchor[] |
buttAn
Die Verankerung der drei Bedienknöpfe.
|
protected Tableau.Element[] |
buttEl
Die drei Bedienknöpfe.
|
Dimension |
dim
Größe des Bilds.
|
static String |
headerLine
Name und Version.
|
int |
maxAnz
Maximale Scheibenanzahl.
|
int |
MIN_ANZ
Minimale Scheibenanzahl (2).
|
anchorList, grDBu, grPBg, img, imgDBu, imgPBg, lastTableau, NO_ANCHOR
listenerList, TOOL_TIP_TEXT_KEY, ui, UNDEFINED_CONDITION, WHEN_ANCESTOR_OF_FOCUSED_COMPONENT, WHEN_FOCUSED, WHEN_IN_FOCUSED_WINDOW
accessibleContext, BOTTOM_ALIGNMENT, CENTER_ALIGNMENT, LEFT_ALIGNMENT, RIGHT_ALIGNMENT, TOP_ALIGNMENT
bk, bl, COLOR_CHOOSE, dbl, dge, dgn, dgr, drt, dsi, dye, ge, gn, gr, hbl, hgr, hrd, hrt, nbl, or, pi, rd, rt, si, sw, ws, wt, ye
ABORT, ALLBITS, ERROR, FRAMEBITS, HEIGHT, PROPERTIES, SOMEBITS, WIDTH
Constructor and Description |
---|
TvH(String bgFile)
Konstruktor mit Namen der Bildhintergrunddatei.
|
Modifier and Type | Method and Description |
---|---|
void |
bildBedient(Tableau.Anchor a,
MouseEvent m)
Ausführungsmethode für Bild-Ereignisse (Maus).
|
void |
fromTo(int stapFrom,
int stapTo) |
void |
init(int wTotal)
Initialisieren des Spiels.
|
void |
knakM()
Text mittlerer Knopf aktualisieren und malen.
|
static void |
main(String[] args)
Startmethode der Anwendung.
|
void |
minus()
Eine Scheibe weniger.
|
void |
nss()
Neu aufstellen bzw.
|
void |
plus()
Eine Scheibe mehr.
|
void |
putTo(int stapInd,
Tableau.Anchor a) |
Tableau.Anchor |
removeFrom(int stapInd) |
void |
retouche(Graphics g,
int w,
int h)
Einmaliges Ändern des geladenen und geränderten Bilds.
|
void |
run() |
addAnchor, addAnchor, addAnchorReverse, addListener, clearAnchor, contains, copyImage, copyImageInfo, ensureCapacity, extraPaint, getAlignmentX, getAlignmentY, getAnchorCount, getAnchorInside, getAnchorListe, getHeight, getMaximumSize, getMinimumSize, getPermBgGraphics, getPreferredSize, getWidth, isGrid, mouseClicked, mouseDragged, mouseEntered, mouseExited, mouseMoved, mousePressed, mouseReleased, paint, removeAnchor, restorePermBg, setGrid, setMotion, setSize, trimToSize, update
addAncestorListener, addNotify, addVetoableChangeListener, computeVisibleRect, contains, createToolTip, disable, enable, firePropertyChange, firePropertyChange, firePropertyChange, fireVetoableChange, getActionForKeyStroke, getActionMap, getAncestorListeners, getAutoscrolls, getBaseline, getBaselineResizeBehavior, getBorder, getBounds, getClientProperty, getComponentGraphics, getComponentPopupMenu, getConditionForKeyStroke, getDebugGraphicsOptions, getDefaultLocale, getFontMetrics, getGraphics, getInheritsPopupMenu, getInputMap, getInputMap, getInputVerifier, getInsets, getInsets, getListeners, getLocation, getNextFocusableComponent, getPopupLocation, getRegisteredKeyStrokes, getRootPane, getSize, getToolTipLocation, getToolTipText, getToolTipText, getTopLevelAncestor, getTransferHandler, getUIClassID, getVerifyInputWhenFocusTarget, getVetoableChangeListeners, getVisibleRect, getX, getY, grabFocus, hide, isDoubleBuffered, isLightweightComponent, isManagingFocus, isOpaque, isOptimizedDrawingEnabled, isPaintingForPrint, isPaintingOrigin, isPaintingTile, isRequestFocusEnabled, isValidateRoot, paintBorder, paintChildren, paintComponent, paintImmediately, paintImmediately, paramString, print, printAll, printBorder, printChildren, printComponent, processComponentKeyEvent, processKeyBinding, processKeyEvent, processMouseEvent, processMouseMotionEvent, putClientProperty, registerKeyboardAction, registerKeyboardAction, removeAncestorListener, removeNotify, removeVetoableChangeListener, repaint, repaint, requestDefaultFocus, requestFocus, requestFocus, requestFocusInWindow, requestFocusInWindow, resetKeyboardActions, reshape, revalidate, scrollRectToVisible, setActionMap, setAlignmentX, setAlignmentY, setAutoscrolls, setBackground, setBorder, setComponentPopupMenu, setDebugGraphicsOptions, setDefaultLocale, setDoubleBuffered, setEnabled, setFocusTraversalKeys, setFont, setForeground, setInheritsPopupMenu, setInputMap, setInputVerifier, setMaximumSize, setMinimumSize, setNextFocusableComponent, setOpaque, setPreferredSize, setRequestFocusEnabled, setToolTipText, setTransferHandler, setUI, setVerifyInputWhenFocusTarget, setVisible, unregisterKeyboardAction, updateUI
add, add, add, add, add, addContainerListener, addImpl, addPropertyChangeListener, addPropertyChangeListener, applyComponentOrientation, areFocusTraversalKeysSet, countComponents, deliverEvent, doLayout, findComponentAt, findComponentAt, getComponent, getComponentAt, getComponentAt, getComponentCount, getComponents, getComponentZOrder, getContainerListeners, getFocusTraversalKeys, getFocusTraversalPolicy, getLayout, getMousePosition, insets, invalidate, isAncestorOf, isFocusCycleRoot, isFocusCycleRoot, isFocusTraversalPolicyProvider, isFocusTraversalPolicySet, layout, list, list, locate, minimumSize, paintComponents, preferredSize, printComponents, processContainerEvent, processEvent, remove, remove, removeAll, removeContainerListener, setComponentZOrder, setFocusCycleRoot, setFocusTraversalPolicy, setFocusTraversalPolicyProvider, setLayout, transferFocusDownCycle, validate, validateTree
action, add, addComponentListener, addFocusListener, addHierarchyBoundsListener, addHierarchyListener, addInputMethodListener, addKeyListener, addMouseListener, addMouseMotionListener, addMouseWheelListener, bounds, checkImage, checkImage, coalesceEvents, contains, createImage, createImage, createVolatileImage, createVolatileImage, disableEvents, dispatchEvent, enable, enableEvents, enableInputMethods, firePropertyChange, firePropertyChange, firePropertyChange, firePropertyChange, firePropertyChange, firePropertyChange, getAccessibleContext, getBackground, getBounds, getColorModel, getComponentListeners, getComponentOrientation, getCursor, getDropTarget, getFocusCycleRootAncestor, getFocusListeners, getFocusTraversalKeysEnabled, getFont, getForeground, getGraphicsConfiguration, getHierarchyBoundsListeners, getHierarchyListeners, getIgnoreRepaint, getInputContext, getInputMethodListeners, getInputMethodRequests, getKeyListeners, getLocale, getLocation, getLocationOnScreen, getMouseListeners, getMouseMotionListeners, getMousePosition, getMouseWheelListeners, getName, getParent, getPeer, getPropertyChangeListeners, getPropertyChangeListeners, getSize, getToolkit, getTreeLock, gotFocus, handleEvent, hasFocus, imageUpdate, inside, isBackgroundSet, isCursorSet, isDisplayable, isEnabled, isFocusable, isFocusOwner, isFocusTraversable, isFontSet, isForegroundSet, isLightweight, isMaximumSizeSet, isMinimumSizeSet, isPreferredSizeSet, isShowing, isValid, isVisible, keyDown, keyUp, list, list, list, location, lostFocus, mouseDown, mouseDrag, mouseEnter, mouseExit, mouseMove, mouseUp, move, nextFocus, paintAll, postEvent, prepareImage, prepareImage, processComponentEvent, processFocusEvent, processHierarchyBoundsEvent, processHierarchyEvent, processInputMethodEvent, processMouseWheelEvent, remove, removeComponentListener, removeFocusListener, removeHierarchyBoundsListener, removeHierarchyListener, removeInputMethodListener, removeKeyListener, removeMouseListener, removeMouseMotionListener, removeMouseWheelListener, removePropertyChangeListener, removePropertyChangeListener, repaint, repaint, repaint, resize, resize, setBounds, setBounds, setComponentOrientation, setCursor, setDropTarget, setFocusable, setFocusTraversalKeysEnabled, setIgnoreRepaint, setLocale, setLocation, setLocation, setName, setSize, show, show, size, toString, transferFocus, transferFocusBackward, transferFocusUpCycle
public static final String headerLine
public static final String BG_FILE
Tableau.img
,
Constant Field Valuespublic final int breite
public final int maxAnz
public final Dimension dim
protected Tableau.Element[] buttEl
protected Tableau.Anchor[] buttAn
public final int MIN_ANZ
public void retouche(Graphics g, int w, int h)
retouche
in class Tableau
g
- Malen in Tableau.img
w
- width in pixelsh
- height in pixelspublic Tableau.Anchor removeFrom(int stapInd)
public void putTo(int stapInd, Tableau.Anchor a)
public void fromTo(int stapFrom, int stapTo)
public void init(int wTotal)
public void nss()
public void knakM()
public void minus()
public void plus()
public void bildBedient(Tableau.Anchor a, MouseEvent m)
bildBedient
in interface Tableau.Listener
public static void main(String[] args)
args
- optional [0]=alternative background image-file; default: peking.gif